android 动态获取?attr/ 的值 代码获取?attr/
这里以获取 ?attr/actionBarSize和 ?attr/colorAccent的值为例://需要获取的值:int[] ints = {android.R.attr.actionBarSize,android.R.attr.colorAccent};TypedArray typedArray = obtainStyledAttributes(in...
·
这里以获取 ?attr/actionBarSize和 ?attr/colorAccent的值为例:
//需要获取的值的id:
int[] ints = {android.R.attr.actionBarSize, android.R.attr.colorAccent};
构建typedArray
TypedArray typedArray = context.obtainStyledAttributes(ints);
//第0个值(ints[0]的resId)
float actionBarSize = typedArray.getDimension(0, 0);
//同理,ints[1]的指标
int colorAccent = typedArray.getColor(1, 0);
typedArray.recycle();
这里的context必需是定义过theme,所以最好是直接使用activity或者dialog,比如这样写
fun attrColor(activity: Activity, id:Int) = activity.obtainStyledAttributes(intArrayOf(id)).let {
val color = it.getColor(0,Color.TRANSPARENT)
it.recycle()
color
}
更多推荐
已为社区贡献15条内容
所有评论(0)