如何从现有imageview上的可绘制对象中获取图像名称

时间:2019-07-31 13:01:47

标签: java android imageview filenames imagebutton

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

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

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

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

由于“ myimg”在开始时为null,因此不起作用,因此我希望“ myimg”检查已使用的图像。

我在Google上搜索了一些有关如何获取资源名称的信息,但我所能获得的只是如何从其名称获取资源ID。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:-1)

我建议使用自定义标签而不是查找资源名称,更改该imageview的标签并在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");
            }
        }
    }
}