android 颜色 数组,在Android中声明维数,颜色,资源ID或其他非标准数据类型的数组?...

我发现自己希望创建Android似乎本不支持的值的xml数组,并且正在寻找解决此问题的一些方法。当前,如果你希望在XML中声明一个值的数组,你仅限于字符串,整数和一个通用的非类型化“数组”,但我真正想要的是能够有参考ID数组。颜色,尺寸等。类似以下内容:在Android中声明维数,颜色,资源ID或其他非标准数据类型的数组?

@dimen/someSize1

@dimen/someSize2

@dimen/someSize3

@color/red

@color/green

@color/blue

或者作为一个伸展目标,能够声明原始维度/颜色,而不仅仅是引用。

不幸的是,似乎没有一个好的方法来实际做到这一点,我可以找到。我可以访问阵列

Resources resources = context.getResources();

TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyClass, defStyle, 0);

int sizesid = array.getResourceId(R.styleable.MyClass_sizes, defaultId);

int colorsid = array.getResourceId(R.styleable.MyClass_colors, defaultId);

这是所有有效,我也得到实际有效的int数组时,我用这些ID来检索数组,像这样

int[] colorIds = resources.getIntArray(colorsid);

的问题是,这些整数不能如果我想解析实际的颜色或尺寸,可以用作有效的参考ID。

resources.getColor(colorIds[0]); // Throws Resource NotFoundException

有什么办法可以将int转换为实际有效的资源ID引用吗?我认为这就是为什么资源具有单独的getDimension/getInteger/getIdentifier。

编辑:这里的目标是引用从我在适当的attrs.xml所定义的自定义的xmlns PARAMS这些阵列,使他们可以包含在XML布局文件,像这样:

xmlns:custom="http://schemas.android.com/apk/res-auto"

custom:sizes="@array/sizes"

custom:colors="@array/colors" />

这就是为什么我的示例使用context.obtainStyledAttributes获取TypedArray对象,以及为什么我使用R.styleable.foo资源来访问其值。我发现字符串数组工作得很好。问题是这些参考ID数组(或者复杂颜色/维数组),并且当我访问它们时,它们看起来并不包含有意义的值。

+0

可能是重复的http://stackoverflow.com/questions/4326037/android-资源阵列/ 43462518#43462518 –

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值