【问题标题】:how to get image name from drawable on an existing imageview如何从现有图像视图上的可绘制对象中获取图像名称
【发布时间】:2019-07-31 13:01:47
【问题描述】:

正如标题所说,我真的很想从我当前的图像视图中获得一个可绘制的名称

Imageview img = findViewById(R.id.IMG);

并使用名为“img001.png”的可绘制图像设置 我有一个按钮可以将图像更改为“img002.png”,当再次单击时,它应该再次将图像更改为“img001”。 我使用这样的代码

if (myimg == "img001"){
myimg= "img002"
}else if (myimg == "img002"){
myimg= "img001"}

它不起作用,因为“myimg”在开始时为空,所以我想要“myimg”检查哪个图像已经在使用中。

我搜索了一些关于如何获取资源名称的信息,但我得到的只是如何从资源名称中获取资源 ID。

【问题讨论】:

  • 好吧,如果myimg 可以为空,您可以检查它并在这种情况下设置"img001"。此外,您应该使用.equals() 比较字符串,而不是通过==。

标签: java android imageview filenames imagebutton


【解决方案1】:

获取图像名称,如下所述: Android: How to get Drawable Image name

然后使用equals()比较名字:

if("img001".equals(imageName)) {
    ...
}

【讨论】:

    【解决方案2】:

    我建议使用自定义标签而不是查找资源名称、更改该图像视图的标签并在 if-else 条件下检查它而不是获取图像名称。当您将资源应用到图像视图时,将该资源 id 作为标签分配给图像视图。

    if(imgView != null) {
        imgView.setImageResource(resourceId_1);
        imgView.setTag(resourceId_1);
    
        imgView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(imgView.getTag != null) {
                    if(imgView.getTag() = resourceId_1) {
                        imgView.setImageResource(resourceId_2);
                        imgView.setTag(resourceId_2);
                    } else if(imgView.getTag() = resourceId_2) {
                        imgView.setImageResource(resourceId_1);
                        imgView.setTag(resourceId_1);
                    }
                } else {
                    Log.v(TAG, "ImageView tag is null");
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 2011-11-27
      • 1970-01-01
      相关资源
      最近更新 更多