最近根据项目需求自定义了一个TextView控件,主要用来做状态的标识,比如一个订单状态有各种,当然了这种设置在Android中可以直接用xml文件来处理,但是对于xml文件太过于麻烦,针对不同的颜色需要写一个xml文件,这样太繁琐了,所以就自己写了一个控件,只要动态设置一下属性就可以达到想要的目的,在此把这代码分享出来,当然了,也希望大家多多提意见,毕竟代码优化是一步一步跟进完善的,好了我们先来看看具体的效果图,毕竟有图才能看看是不是自己想要的那种控件,上图:
下面我们就来看看具体的实现吧
首先是自定义控件ColorTextView.java文件:
package com.test.colortextviewdemo;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.View;
/**
* 自定义申请状态textView
*/
public class ColorTextView extends View {
/**
* 文本内容
*/
private String mTitleText;
/**
* 文本的颜色
*/
private int mTitleTextColor;
/**
* 文本的大小
*/
private int mTitleTextSize;
private int ctvBackgroundColor;
/**
* 圆角大小
*/
private int mCornerSize;
/**
* 绘制时控制文本绘制的范围
*/
private Rect mtitleBound;
private Paint mtitlePaint;
public ColorTextView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public ColorTextView(Context context) {
this(context, null);
}
public void setCtvBackgroundColor(int ctvBackgroundColor) {
this.ctvBackgroundCol