1. 程式人生 > >Android自定義TextView 自定義設定圓角背景色

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後的值