如何从android中的imageview获取Drawable名称并获取它的字符串名称进行比较

时间:2015-04-07 09:33:33

标签: android android-layout android-imageview android-drawable

我有两个可绘制的 apple a 如何在我的代码中获取可绘制的名称,并将它们以相同的字母开头比较

社区编辑的问题

提问者实际上是在寻找2个问题 -

  1. 一开始他想从imageview id中获取drawable id。 (在imageview中显示的可绘制的)

  2. 然后他想在步骤1中从获得的drawable id中获取可绘制的名称。

3 个答案:

答案 0 :(得分:0)

更新回答

对于步骤1

没有直接的方法。您需要通过Tag在imageview的setTag()中保存drawable ID。然后你可以通过getTag()检索图像视图。

步骤-2

你应该通过

获取图像名称
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

由于您希望比较同一项目中的图像,因此您可以轻松地截断该部分直到实际名称,因为它对于您的所有图像都是相同的。