android自定义属性放在,Android自定义属性格式

概述

Android中自定义属性,attr中声明的format,即表明其格式。

其中ImageView包含background(背景)和src(前景)属性。

ImageView#attr

View#attr

View.java

case com.android.internal.R.styleable.View_background:

background = a.getDrawable(attr);

break;

ImageView.java

Drawable d = a.getDrawable(com.android.internal.R.styleable.ImageView_src);

if (d != null) {

setImageDrawable(d);

}

reference|color:可以是一个引用drawable的resourceId,也可以是一个color(最终会被封装为ColorDrawable)

attr#format

reference

参考某一资源id,即resourceId

case com.android.internal.R.styleable.View_id:

mID = a.getResourceId(attr, NO_ID);

break;

color

颜色值

case com.android.internal.R.styleable.TextView_textColor:

textColor = a.getColorStateList(attr);

break;

case com.android.internal.R.styleable.TextView_textColorHighlight:

textColorHighlight = a.getColor(attr, textColorHighlight);

break;

boolean

布尔值

final boolean checked = a.getBoolean(

com.android.internal.R.styleable.CompoundButton_checked, false);

setChecked(checked);

dimension

尺寸值

protected void setBaseAttributes(TypedArray a, int widthAttr, int heightAttr) {

width = a.getLayoutDimension(widthAttr, "layout_width");

height = a.getLayoutDimension(heightAttr, "layout_height");

}

float

浮点值

case com.android.internal.R.styleable.View_alpha:

setAlpha(a.getFloat(attr, 1f));

break;

integer

整型值

private static final int ROW_COUNT = R.styleable.GridLayout_rowCount;

private static final int COLUMN_COUNT = R.styleable.GridLayout_columnCount;

string

字符串

case com.android.internal.R.styleable.TextView_text:

text = a.getText(attr);

break;

其中getText和getString,一个返回CharSequence,一个返回String

fraction

百分数,常用于定义animation

enum

枚举值

int index = a.getInt(com.android.internal.R.styleable.LinearLayout_orientation, -1);

if (index >= 0) {

setOrientation(index);

}

flag

位或运算

case com.android.internal.R.styleable.TextView_gravity:

setGravity(a.getInt(attr, -1));

break;

属性定义可以指定多种类型,如background,pivotX等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值