自定義控件屬性的獲取
阿新 • • 發佈:2017-10-01
roi 控件 oid pri 需要 1.0 ora array size
在資源文件目錄下新建attrs.xml文件,聲明需要的屬性
<?xml version="1.0" encoding="utf-8"?> <resources><!-- resource是跟標簽,可以在裏面定義若幹個declare-styleable --> <declare-styleable name="custom_view"><!-- name定義了變量的名稱 --> <attr name="custom_color" format="color|reference"></attr><!-- 定義對應的屬性,name定義了屬性的名稱 --> <attr name="custom_size" format="dimension|reference"></attr> <!--每一個發生要定義format指定其類型,類型包括 reference 表示引用,參考某一資源ID string 表示字符串 color 表示顏色值 dimension 表示尺寸值 boolean 表示布爾值 integer 表示整型值 float 表示浮點值 fraction 表示百分數 enum 表示枚舉值 flag 表示位運算--> </declare-styleable>
第二步: 在構造方法中獲取自定義屬性, 通過context.obtainStyledAttributes(attrs, R.styleable.custom_view)方法
public class CustomTextView extends TextView { private int textSize;//自定義文件大小 private int textColor;//自定義文字顏色 //自定義屬性,會調用帶兩個對數的構造方法 public CustomTextView(Context context, AttributeSet attrs) {super(context, attrs); TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.custom_view);//TypedArray屬性對象 textSize = ta.getDimensionPixelSize(R.styleable.custom_view_custom_size, 20);//獲取屬性對象中對應的屬性值 textColor = ta.getColor(R.styleable.custom_view_custom_color, 0x0000ff); setColorAndSize(textColor, textSize);//設置屬性 ta.recycle(); } public CustomTextView(Context context) { super(context); } private void setColorAndSize(int textColor, int textSize) { setTextColor(textColor); setTextSize(textSize); } }
參考: Android自定義控件屬性
自定義控件屬性的獲取