1. 程式人生 > 程式設計 >Android中比較兩個圖片是否一致的問題

Android中比較兩個圖片是否一致的問題

在Fragment介面中,設定兩個圖片一致如下:

預設設定圖片為:

binding.ivArrow.setImageResource(R.drawable.icon_down);

先獲取預設圖片,再和其它兩張圖片做對比,然後處理業務邏輯:

Drawable.ConstantState ivArrow = binding.ivArrow.getDrawable().getCurrent().getConstantState();
        Drawable.ConstantState icon_up = getDrawable(R.drawable.icon_up).getConstantState();
        Drawable.ConstantState icon_down = getDrawable(R.drawable.icon_down).getConstantState();
        Log.e("--->ivArrow$","$" + ivArrow);
        Log.e("--->icon_up$","$" + icon_up);
        Log.e("--->icon_down","$" + icon_down);
        if (ivArrow.equals(icon_up)) {
          binding.ivArrow.setImageResource(R.drawable.icon_down);
        } else if (ivArrow.equals(icon_down)) {
          binding.ivArrow.setImageResource(R.drawable.icon_up);
        }

列印結果如下:

Android中比較兩個圖片是否一致的問題

顯然通過日誌發現,每個圖片的資源都不一致,這是為什麼,通過點選getDrawable檢視原始碼發現

Android中比較兩個圖片是否一致的問題

Android中比較兩個圖片是否一致的問題

這個不是我們想要的,我們要的是id,怎麼解決呢,因為是在Fragment中,所以要加上 getActivity()

Android中比較兩個圖片是否一致的問題

Android中比較兩個圖片是否一致的問題

設定完後,看下效果

Android中比較兩個圖片是否一致的問題

完整程式碼如下:

Drawable.ConstantState ivArrow = binding.ivArrow.getDrawable().getCurrent().getConstantState();
        Drawable.ConstantState icon_up = getActivity().getDrawable(R.drawable.icon_up).getConstantState();
        Drawable.ConstantState icon_down = getActivity().getDrawable(R.drawable.icon_down).getConstantState();
        Log.e("--->ivArrow$","$" + icon_down);
        if (ivArrow.equals(icon_up)) {
          binding.ivArrow.setImageResource(R.drawable.icon_down);
        } else if (ivArrow.equals(icon_down)) {
          binding.ivArrow.setImageResource(R.drawable.icon_up);
        }

到此這篇關於Android中比較兩個圖片是否一致的文章就介紹到這了,更多相關Android 比較兩個圖片是否一致內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!