編輯:關於Android編程
android 中使用Canvas的drawText繪制文本的位置,是基於基線的。如下圖:
其中字母Q的小尾巴在橫線下面了。
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+1PXDtNH51dLXvNfWxLi1xNbQ0MTOu9bDxNijvzwvcD4KPHA+z8i/tM/Cw+a1xMD919OjuqOo09Kx37XEyv3X1qOsse3KvtfWzOW1xCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pPGJyPgo8L3A+CjxwPjxpbWcgc3JjPQ=="/uploadfile/Collfiles/20140607/2014060709072586.jpg" alt="\">
這裡面的關鍵是Paint.getTextBound。 getTextBound會填充一個Rect,這個Rect表示的就是一個字的left, top, right, bottom。注意到left和top並不是從0,0開始的。 left和right應該是從0坐標開始的,而top和bottom相對於基線而言的。這個信息足夠我們找准文字的中心了。
最後上一下代碼:
@Override public void onDraw(Canvas canvas) { mPaint.setTextSize(40f); mPaint.setAntiAlias(true); mPaint.setColor(0xffff0000); canvas.drawText(alphas, 30, 60, mPaint); mPaint.setColor(0xff000000); canvas.drawLine(0, 60, 1000, 60, mPaint); for(int i = 0; i < alphas.length(); i ++) { int y = i*70+100; mPaint.getTextBounds(alphas, i, i+1, mBound); mPaint.setColor(0xff000000); canvas.drawText(String.format("%d,%d,%d,%d", mBound.left,mBound.top, mBound.right,mBound.bottom), 150, y, mPaint); mPaint.setColor(0xffff0000); canvas.drawCircle(60, y, 30, mPaint); mPaint.setColor(0xffffffff); canvas.drawText(alphas, i, i+1, 60 - (mBound.right + mBound.left)/2, y - (mBound.bottom + mBound.top)/2, mPaint); mPaint.setColor(0xff000000); canvas.drawLine(30, y, 90, y, mPaint); canvas.drawLine(60, y-30, 60, y+30, mPaint); } } }
今天有空學習了下CardView的使用,既然是使用,不凡使用一個實例操作一下CardView是Android5.0的新控件,所以我們需要在dependencies中添加支
上次我們講到了使用URLConnection的網絡編程,URLConnection已經可以非常方便地與指定站點交換信息,URLConnection下還有一個子類:Http
前言前面在介紹控件TabLayout控件和CoordinatorLayout使用的時候說了下實現京東、天貓詳情頁面的效果,今天要說的是優化版,是我們線上實現的效果,首先看
1.fragment1布局及代碼布局<?xml version=1.0 encoding=utf-8?><RelativeLayout