Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android入門:自定義控件 自定義屬性

Android入門:自定義控件 自定義屬性

編輯:Android開發實例

1、自定義屬性文件attrs.xml,放入values文件夾中---------attrs.xml

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <resources> 
  3.       <declare-styleable name="myView">   
  4.          <attr name="textColor" format="color"/>   
  5.          <attr name="textSize" format="dimension"/>   
  6.      </declare-styleable> 
  7. </resources> 

 

2、自定義MyView類此類必須繼承View基類 ------MyView.java

  1. public class MyView extends View {  
  2.         private static final String TAG = "MyView";   
  3.         private Paint mPaint;   
  4.         public MyView(Context context) {   
  5.             super(context);   
  6.         }   
  7.            
  8.         public MyView(Context context, AttributeSet attr) {   
  9.             super(context, attr);   
  10.             mPaint = new Paint();   
  11.             //獲取自定義屬性  
  12.             TypedArray a = context.obtainStyledAttributes(attr, R.styleable.myView);  
  13.             //獲取尺寸屬性值,默認大小為:30  
  14.             float textSize = a.getDimension(R.styleable.myView_textSize, 30);  
  15.             //獲取顏色屬性值,默認顏色為:0x990000FF  
  16.             int textColor = a.getColor(R.styleable.myView_textColor, 0x990000FF);  
  17.             //設置畫筆的尺寸和顏色  
  18.             mPaint.setTextSize(textSize);   
  19.             mPaint.setColor(textColor);   
  20.             //緩存屬性,可以不設置,主要是為了提高效率  
  21.             a.recycle();  
  22.         }   
  23.         @Override   
  24.         protected void onDraw(Canvas canvas) {   
  25.             super.onDraw(canvas);   
  26.             canvas.drawRect(new Rect(10 ,10,300,300), mPaint);   
  27.         }   

 

 

3、main.xml文件

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     xmlns:flyfot="http://schemas.android.com/apk/res/cn.debby.attrs" 
  4.     android:orientation="vertical" 
  5.     android:layout_width="fill_parent" 
  6.     android:layout_height="fill_parent" 
  7.     > 
  8.     <!-- 設置屬性 --> 
  9.    <cn.debby.attrs.MyView 
  10.     android:layout_width="fill_parent"   
  11.     android:layout_height="fill_parent"   
  12.     flyfot:textSize="120px"   
  13.     flyfot:textColor="#ABCDEFEF"   
  14.     /> 
  15.    
  16. <!--  
  17.     注意引入命名空間:xmlns:flyfot="http://schemas.android.com/apk/res/cn.debby.attrs"  
  18.      --> 
  19.     
  20. </LinearLayout> 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved