【IT168 技术】Android提供了强大的可复用组件,但特殊情况需要自己的自定义的View组件,下面自定义一个View。
首先在values/attrs.xml中定义好自定义的View会有哪些属性需要在XML中配置:
< ?xml version="1.0" encoding="utf-8"?>
< resources>
< declare-styleable name="MyView">
< attr name="textColor" format="color" />
< attr name="textSize" format="dimension" />
//在attrs中定义background
< attr name="imgBackground" format="integer" />
< attr name="textPaddingLeft" format="dimension"/>
< attr name="textPaddingTop" format="dimension"/>
< /declare-styleable>
< /resources>
编写自定义的View-MyView.java,继承View
package test.cuntomizedview;
import java.util.Calendar;
import test.cuntomizedview.R;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.view.View;
public class MyView extends View {
private Paint mPaint;
private Context mContext;
private String mStr;
/* 如果需要在配置文件中使用该自定义组件,注意一定要重写public **View(Context context, AttributeSet attrs)的构造方法,而不是public **View(Context context)。如果只需要在程序中利用代码使用该组件可以只覆写public **View(Context context)*/
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
initMyView();
/*获取在xml中配置的属性值*/
TypedArray params = context.obtainStyledAttributes(attrs,
R.styleable.MyView);
//取得background