Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中从imageview中获取可绘制名称并获取它';用于比较的字符串名_Android_Android Layout_Android Imageview_Android Drawable - Fatal编程技术网

如何在android中从imageview中获取可绘制名称并获取它';用于比较的字符串名

如何在android中从imageview中获取可绘制名称并获取它';用于比较的字符串名,android,android-layout,android-imageview,android-drawable,Android,Android Layout,Android Imageview,Android Drawable,我有两个可绘制的apple和a如何在代码中获取可绘制的名称,并比较它们是否以相同的字母开头 社区编辑问题 提问者实际上在寻找两个问题- 首先,他希望从imageview id中获取可绘制id。(imageview中显示的thw drawable) 然后他想从步骤1中获得的可提取id中获取可提取名称 最新答案 对于步骤1 没有直接的方法。您需要通过setTag()将可绘制id保存在imageview的标记中。然后可以通过imageview的getTag()进行检索 步骤2 您应该通过以下方式获取图

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

社区编辑问题 提问者实际上在寻找两个问题-

  • 首先,他希望从imageview id中获取可绘制id。(imageview中显示的thw drawable)

  • 然后他想从步骤1中获得的可提取id中获取可提取名称

  • 最新答案

    对于步骤1 没有直接的方法。您需要通过
    setTag()
    将可绘制id保存在imageview的
    标记中。然后可以通过imageview的
    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
    
    }
    
    你试过这个吗

    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
    }
    

    通过
    getResources().getResourceName(R.drawable.XXXX)
    获取完整的资源名称。这将返回一个字符串,格式为
    package:type/entry

    例如,我的项目在我的参考资料中有一个包
    com.test.app
    和一个名为
    apple.png
    的可绘制文件。调用我提到的方法,结果将是:

    com.test.app:drawable/apple
    

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

    您是否尝试过
    String name=context.getResources().getResourceEntryName(imageResID)?我会随机获取图像视图上26的可绘制名称,因此我必须通过放置可绘制id来检查可绘制名称…对于26,他们是否有任何方法,我可以仅通过imageview id获取可绘制名称,并获取与该imageview连接的可绘制名称让我们明确,您想首先从imageview id获取可绘制id,然后,您希望从获得的可绘制id中获取可绘制名称。我们清楚您的需要吗?我当前的回答应该可以满足您的第二部分。但是如何通过imageview id获取可绘制id?据我所知,没有SDK支持的直接方法从imageview获取可绘制id。你现在应该和回答者分享你的研究。是的,但是如何通过它的imageview id获得可绘制id…因为我有26个可绘制id,所以…静态地做这个会很长