Android自定義TextView 自定義設定圓角背景色
public class RoundTextView extends TextView {
private int mBgColor = 0;
private int mCornerSize = 18;
public RoundTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
setBackgroundRounded(this.getMeasuredWidth(), this.getMeasuredHeight());
}
public void setBackgroundColor(int mBgColor, int mCornerSize) {
this.mBgColor = mBgColor;
this.mCornerSize = mCornerSize;
invalidate();
}
private void setBackgroundRounded(int w, int h) {
Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);Canvas c = new Canvas(bmp);
Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG);
paint.setAntiAlias(true);
paint.setColor(mBgColor);
RectF rec = new RectF(0, 0, w, h);
c.drawRoundRect(rec, mCornerSize, mCornerSize, paint);
setBackgroundDrawable(new BitmapDrawable(getResources(), bmp));
}
}
頁面xml里布局新增該控制元件
頁面程式碼裡獲取該控制元件後呼叫setBackgroundColor方法 傳顏色值如Color.parseColor("#666666")和圓角大小 dp轉換為px後的值