Android获取id的资源类型

时间:2013-12-07 20:26:38

标签: android resources

我搜索一种说明哪种资源类型在整数ID后面的方法。例如,我有一个可绘制的id和另一个用于颜色的id。我可以使用Resource.getDrawable(id)加载drawable,使用Resource.getColor(ID)加载颜色,但我怎么知道哪个方法对于给定的ID是正确的。我寻找像Resource.isColor(id)这样的东西? 有谁有个好主意。我写了一个图像加载器,它从web,文件系统和drawables加载图像,但现在也从十六进制颜色或颜色ID。

2 个答案:

答案 0 :(得分:6)

从android Resources类中查看this函数。 Resources.getResourceTypeName(int resid)(也this

答案 1 :(得分:0)

要找到资源类型,最安全的解决方案是使用以下代码

String viewName = findViewById(resourceId).toString();
String resourcetype = viewName.substring(0,viewName.indexOf("{"));

resoucetype 然后包含资源的完整类名,例如,在EditText的情况下,它显示

android.widget.EditText

尝试了其他一些想法,但指出getResourceTypeName只返回'id'作为值,而getTag()在View上并不适用于所有条件。