zoukankan      html  css  js  c++  java
  • 自定义控件属性的获取

    在资源文件目录下新建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);
        }
    
    }
  • 相关阅读:
    [APIO2018]铁人两项 --- 圆方树
    SPOJ1811 && SPOJ1812
    [BZOJ4627][BeiJing2016]回转寿司(线段树)
    NOIP2018提高组题解
    [BZOJ4340][BJOI2015]隐身术(后缀数组)
    [BZOJ4338][BJOI2015]糖果(扩展Lucas)
    [BZOJ4336][BJOI2015]骑士的旅行(树链剖分+线段树)
    [BZOJ4419][SHOI2013]发微博
    [BZOJ2878][NOI2012]迷失游乐园(环套树DP+概率)
    [BZOJ1791][IOI2008]Island岛屿(环套树DP)
  • 原文地址:https://www.cnblogs.com/huyang011/p/7617419.html
Copyright © 2011-2022 走看看