我有两个可绘制的 apple 和 a 如何在我的代码中获取可绘制的名称,并将它们以相同的字母开头比较
提问者实际上是在寻找2个问题 -
一开始他想从imageview id中获取drawable id。 (在imageview中显示的可绘制的)
然后他想在步骤1中从获得的drawable id中获取可绘制的名称。
答案 0 :(得分:0)
更新回答
没有直接的方法。您需要通过Tag
在imageview的setTag()
中保存drawable ID。然后你可以通过getTag()
检索图像视图。
你应该通过
获取图像名称String imageName1 = context.getResources().getResourceEntryName(R.drawable.apple);
// now imageName1 should contain "apple".
String imageName2 = context.getResources().getResourceEntryName(R.drawable.a);
// now imageName2 should contain "a".
if(imageName1.toLowerCase().charAt(0) == imageName2.toLowerCase().charAt(0))
{
// starting character 'a' is matching
}
答案 1 :(得分:0)
你试过这个吗?
String name1 = getResources().getResourceEntryName(R.drawable.drawable_id_1);
String name2 = getResources().getResourceEntryName(R.drawable.drawable_id_2);
if (name1.startsWith("a") && name2.startsWith("a")) {
// do something
}
答案 2 :(得分:0)
通过getResources().getResourceName(R.drawable.XXXX)
获取完整的资源名称。这将以package:type/entry
的形式返回一个字符串。
例如,我的项目在我的资源中包含com.test.app
包和一个名为apple.png
的drawable。调用我提到的方法结果将是:
com.test.app:drawable/apple
由于您希望比较同一项目中的图像,因此您可以轻松地截断该部分直到实际名称,因为它对于您的所有图像都是相同的。