精通Android自定义View(五)自定义属性值使用详情

1 可查看Android自定义View的基本使用

1 精通Android自定义View(一)自定义控的基本使用
2 精通Android自定义View(二)自定义属性使用详解

2 string 字符串

定义
<declare-styleable name="MyTextView">
<!--字符串-->
     <attr name="my_textname" format="string"/>
</declare-styleable>
自定义控件中获取 
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MyTextView);
//获取文字
String textName = typedArray.getString(R.styleable.MyTextView_my_textname);

3 dimension 尺寸值

定义
<declare-styleable name="MyTextView">
		<!--        尺寸值        -->
        <attr name="my_textsize" format="dimension"/>
</declare-styleable>
自定义控件中获取 
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MyTextView);
//获取
//获取文字大小  14是设置的默认值
 float textsize = typedArray.getDimensionPixelSize(R.styleable.MyTextView_my_textsize, 14);

4 color:颜色值

定义
<declare-styleable name="MyTextView">
		<!--颜色-->
        <attr name="my_textcolor" format="color"/>
</declare-styleable>
自定义控件中获取 
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MyTextView);
//获取文字颜色
  int color = typedArray.getColor(R.styleable.MyTextView_my_textcolor, 0xff00ff00);
        

5 reference:参考某一资源ID。

定义
<declare-styleable name="MyTextView">
		<!--引用某个资源的ID-->
        <attr name="my_background" format="reference"/>
</declare-styleable>
自定义控件中获取 
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MyTextView);
//获取背景
 int resourceId = typedArray.getResourceId(R.styleable.MyTextView_my_background, R.mipmap.ic_launcher);
 

6 boolean:布尔值.

7 枚举

一般属性需要指定 name 和 format ,枚举属性只需指定 name,然后用 enum 标签 指定所有可能属性的 name和value(注:value只能为int型)

定义 

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="custom_view">
        <attr name="checkType" format="string" />
        <attr name="type">
            <enum name="password" value="1" />
            <enum name="checkButton" value="2" />
            <enum name="phone" value="3" />
        </attr>
    </declare-styleable>
</resources>

自定义控件中使用 
int type = array.getInt(R.styleable.custom_view_type, 0);

早起的年轻人 CSDN认证博客专家 移动开发 项目管理 Java
只要用心去做,每一件事情还是有可能成功的,当然成功是没有界限的,只不过是达到自己心里的那个目标,公众号:我的大前端生涯,一个爱喝茶的程序员,通常会搞搞SpringBoot 、Herbinate、Mybatiys、Android、iOS、Flutter、Vue、小程序等.
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页