自定义TextView设置边框与背景颜色添加点击事件,点击更改随机数与背景
2017-09-28 14:55
1366 查看
MyTextView
public class MyTextView extends android.support.v7.widget.AppCompatTextView { /** * 需要绘制的文字 */ private String mText; /** * 文本的颜色 */ private int mTextColor; /** * 文本的大小 */ private int mTextSize = 10; /** * 绘制时控制文本绘制的范围 */ private Paint mPaint; private Paint mPaintIn; public MyTextView(Context context) { super(context); init(); } public MyTextView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(); } public MyTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //边框颜色 canvas.drawRect(new Rect(0, 0, getMeasuredWidth(), getMeasuredHeight()), mPaintIn); //绘画文本 canvas.drawText(mText, 0, 100, mPaint); } private void init() { //初始化 mText = "4546"; mTextSize = 100; mTextColor = Color.BLACK; //文本的画笔 mPaint = new Paint(); mPaint.setColor(mTextColor); mPaint.setAntiAlias(true); mPaint.setTextSize(mTextSize); this.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mText = randomText(); String color = randomColor(); mPaintIn.setColor(Color.parseColor("#F"+color)); invalidate(); } }); //边框背景颜色的画笔 mPaintIn = new Paint(); mPaintIn.setAntiAlias(true); mPaintIn.setDither(true); mPaintIn.setStyle(Paint.Style.FILL); mPaintIn.setColor(getResources().getColor(R.color.colorPrimary)); } //随机数 private String randomText() { Random random = new Random(); Set<Integer> set = new HashSet<Integer>(); while (set.size() < 4) { int randomInt = random.nextInt(10); set.add(randomInt); } StringBuffer sb = new StringBuffer(); for (Integer i : set) { sb.append("" + i); } return sb.toString(); } //设置颜色的随机数 private String randomColor() { Random random = new Random(); Set<Integer> set = new HashSet<Integer>(); while (set.size() < 5) { int randomInt = random.nextInt(10); set.add(randomInt); } StringBuffer sb = new StringBuffer(); for (Integer i : set) { sb.append("" + i); } return sb.toString(); } }
相关文章推荐
- 安卓开发 给textview添加点击事件并设置点击颜色
- textview设置多种不同的字体颜色和点击事件
- TextView中的部分文字自定义颜色和点击事件(类似新浪微博带颜色的可点击字体)
- Android TextView实现不同字体颜色并添加点击事件
- 自定义View之自定义按键圆角边框背景添加点击效果
- android TextView改变部分字体的颜色,大小,设置部分字体有点击事件
- 一个textview设置特殊的字体样式,颜色,并且设置特殊字体点击事件
- TextView中的文本加效果,如设置不同颜色,大小或点击事件
- Android 关于TextView中,设置指定部分文字改变颜色,和指定部分文字点击事件
- Android-TextView设置多种颜色及部分点击事件
- 一个Text,设置不同的颜色,有颜色部分添加点击事件
- TextView设置不同的点击事件与不同的颜色(kotlin版)
- android TextView、EditText对部分内容设置颜色、字体、超链接、图片、点击事件
- 设置TextView等View组件点击效果。点击修改背景。字体颜色等
- 对于TextView某些字符设置点击事件和改变颜色
- 关于TextView中,设置指定部分文字改变颜色,和指定部分文字点击事件
- android textview可以设置文字颜色 部分文字点击事件处理
- Android TextView 给文本中指定片段添加自定义点击事件
- 代码设置TextView、Button等控件圆角边框背景颜色
- TextView设置部分文字颜色和点击事件