簡體   English   中英

如何從現有圖像視圖上的可繪制對象中獲取圖像名稱

[英]how to get image name from drawable on an existing imageview

正如標題所說,我真的想從我當前的圖像視圖中獲得一個可繪制的名稱

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。

獲取圖像名稱的解釋如下: Android:如何獲取可繪制的圖像名稱

然后使用 equals() 比較名稱:

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

我建議使用自定義標簽而不是查找資源名稱,更改該圖像視圖的標簽並在 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");
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM