书接上回 
在xml里建立属性,然后java代码里用typedArray获得这些属性,得到属性后,利用属性做一些事.例:得到xml里的color,赋给paint.
1.在res/values/下新建attrs.xml
 
- <?xml version="1.0" encoding="utf-8"?>  
- <resources>  
-     <declare-styleable name="CustomView2">  
-         <attr name="textColor" format="color" />  
-         <attr name="textSize" format="dimension" />  
-     </declare-styleable>  
- </resources>  
 
 
format详解可参照http://blog.csdn.net/ethan_xue/article/details/7315064
2.主要看构造函数
 
 
- public class CustomView2 extends View {  
-   
-     private Paint mPaint2;  
-     private String mText = "drawText";  
-   
-     public CustomView2(Context context, AttributeSet attrs) {  
-         super(context, attrs);  
-         mPaint2 = new Paint();  
-         
-         TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomView2);  
-         
-         int textColor = a.getColor(R.styleable.CustomView2_textColor, 0xFFFFFFFF);  
-         float textSize = a.getDimension(R.styleable.CustomView2_textSize, 35);  
-         mPaint2.setColor(textColor);  
-         mPaint2.setTextSize(textSize);  
-         
-         a.recycle();  
-     }  
-   
-     @Override  
-     protected void onDraw(Canvas canvas) {  
-         super.onDraw(canvas);  
-   
-         mPaint2.setStyle(Style.FILL);  
-         canvas.drawText(mText, 10, 60, mPaint2);  
-     }  
-   
- }  
 
3.布局
 
 
- <?xml version="1.0" encoding="utf-8"?>  
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
-     xmlns:test="http://schemas.android.com/apk/res/ethan.customview1"   
-     android:orientation="vertical"  
-     android:layout_width="fill_parent"  
-     android:layout_height="fill_parent"  
-     >  
- <ethan.customview1.CustomView2    
-     android:layout_width="wrap_content"   
-     android:layout_height="wrap_content"   
-     test:textColor="#f00"  
-     test:textSize="20sp"  
-     />  
- </LinearLayout>  
 
4.效果图
 

下载地址 http://download.csdn.net/detail/ethan_xue/4108832
android自定义控件(三) 自定义属性
原文:http://www.cnblogs.com/chengzhengfu/p/4574086.html