Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 自定義組件(一) 基本實現方式和自定義屬性

Android 自定義組件(一) 基本實現方式和自定義屬性

編輯:關於Android編程

實現方式:

1. 繼承自ViewGroup或Layout ,自定義設置子view的位置、尺寸等,用於組合一些組件,產生一個復合組件

2. 繼承自已有的widget View,用於擴展現有組件的功能

3. 繼承自View ,完全自定義一個組件

自定義類的構造函數:

	public CustomView2(Context context) {//直接在代碼中調用時,使用該函數
		super(context);
	}
	
	public CustomView2(Context context, AttributeSet attrs) {//在xml中使用自定義view時,使用這個函數
		super(context, attrs);
	}

	public CustomView2(Context context, AttributeSet attrs, int defStyle) {//可以由上一個函數中手動調用
		super(context, attrs, defStyle);
	}
自定義函數中的attrs表示view的屬性集,defStyle表示默認的屬性資源集的id

在xml中使用自定義view的流程:

自定義屬性

定義屬性

res/values/attrs.xml

    
    
    
         
        
         
         
         
         
         
         
         
         
         
         
            
            
        
         
            
            
        
        

布局中使用



    

    
		
        
        
        
    
	
    
    
	
    
    
    


代碼中解析自定義屬性

	public CustomView1(Context context, AttributeSet attrs) {
		super(context, attrs);
		//atts 包括
		TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.customview1);
		//系統會在自定義屬性前加上它所屬的declare-styleable 的name_
		int color = array.getColor(R.styleable.customview1_color, Color.WHITE);
		float rotation = array.getFloat(R.styleable.customview1_rotation, 0f);
		float score = array.getFraction(R.styleable.customview1_score, 0, 13, 10);
		array.recycle();//回收
		System.out.println("color=" + color + ", rotation=" + rotation + ", score=" + score);
		setBackgroundColor(color);
	}


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