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