美文网首页
Android 自定义属性

Android 自定义属性

作者: 海在路上 | 来源:发表于2019-05-09 20:47 被阅读0次

    1.位置

    res/values/styles.xml

    2. 定义格式:

    <declare-styleable name="ExpandableTextView">
            <declare-styleable name="CustomView1">
            <attr name="text" format="string"/>
            <attr name="intType" format="integer"/>
    </declare-styleable>
    

    3. 使用

    <com.android.haigeone.ui.View.CustomView1
            android:layout_width="100dp"
            android:layout_height="100dp"
            app:text="hahahaha"
            app:intType="100"
            android:background="#aaa"/>
    
    public class CustomView1 extends View {
        private static final String TAG = "CustomView1";
    
        public CustomView1(Context context) {
            super(context,null);
        }
    
        public CustomView1(Context context, @Nullable AttributeSet attrs) {
            super(context, attrs);
            init(context,attrs);
        }
    
        public CustomView1(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
            init(context,attrs);
        }
    
        private void init(Context context,AttributeSet attrs){
            TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CustomView1);
            String string = typedArray.getString(R.styleable.CustomView1_text);
            Log.e(TAG,"text == " + string);
            int integer = typedArray.getInteger(R.styleable.CustomView1_intType, 10);
            Log.e(TAG,"int == " + integer);
            int intValue = typedArray.getInt(R.styleable.CustomView1_intType,10);
        }
    }
    

    format 支持类型

    <attr name = "background" format = "reference" />  && android:background = "@drawable/图片ID"
    <attr name = "textColor" format = "color" />  &&  android:textColor = "#00FF00" 
    <attr name = "focusable" format = "boolean" />  &&  android:focusable = "true"
    <attr name = "layout_width" format = "dimension" />  &&  android:layout_width = "42dip"
    name = "pivotX" format = "fraction"  &&  android:pivotX = "200%"
    // 枚举
        <attr name="orientation">
            <enum name="horizontal" value="0" />
            <enum name="vertical" value="1" />
        </attr>
    android:orientation = "vertical"
    // 位运算
        <attr name="gravity">
                <flag name="top" value="0x30" />
                <flag name="bottom" value="0x50" />
                <flag name="left" value="0x03" />
                <flag name="right" value="0x05" />
                <flag name="center_vertical" value="0x10" />
                ...
        </attr>
     android:gravity="bottom|left"
    //混合类型:
    <attr name = "background" format = "reference|color" />
    android:background = "@drawable/图片ID"   ||   android:background = "#00FF00"
    
    {基本类型略}
    

    相关文章

      网友评论

          本文标题:Android 自定义属性

          本文链接:https://www.haomeiwen.com/subject/ntqxfftx.html