自定义属性
<declare-styleable name="TextView">
<attr name="YiRanText" format="string"/>
<attr name="YiRanTextColor" format="color"/>
<attr name="YiRanTextSize" format="dimension"/>
<attr name="YiRanMaxLength" format="integer"/>
<attr name="YiRanBackground" format="reference|color"/>
<attr name="YiRanInputType">
<enum name="number" value="1"/>
<enum name="text" value="2"/>
<enum name="password" value="3"/>
</attr>
</declare-styleable>
整体代码
public class TextView extends View {
private String mText;
private int mTextSize=15;
private int mTextColor= Color.BLACK;
private Paint mPaint;
public TextView(Context context) {
this(context,null);
}
public TextView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs,0);
}
public TextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
TypedArray array=context.obtainStyledAttributes(attrs, R.styleable.TextView);
mText=array.getString(R.styleable.TextView_YiRanText);
mTextColor=array.getColor(R.styleable.TextView_YiRanTextColor,mTextColor);
mTextSize=array.getDimensionPixelSize(R.styleable.TextView_YiRanTextSize,spToPx(mTextSize));
array.recycle();
mPaint=new Paint();
mPaint.setAntiAlias