Android中比較兩個圖片是否一致的問題
在Fragment界面中,設置兩個圖片一致如下:
默認設置圖片為:
binding.ivArrow.setImageResource(R.drawable.icon_down);
先獲取默認圖片,再和其它兩張圖片做對比,然后處理業(yè)務邏輯:
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);
}
打印結果如下:

顯然通過日志發(fā)現(xiàn),每個圖片的資源都不一致,這是為什么,通過點擊getDrawable查看源碼發(fā)現(xiàn)


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


設置完后,看下效果

完整代碼如下:
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$", "$" + 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中比較兩個圖片是否一致的文章就介紹到這了,更多相關Android 比較兩個圖片是否一致內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android ListView實現(xiàn)無限循環(huán)滾動
這篇文章主要為大家詳細介紹了Android ListView實現(xiàn)無限循環(huán)滾動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06
Android GestureDetector手勢滑動使用實例講解
這篇文章主要為大家詳細介紹了Android GestureDetector手勢滑動使用實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-07-07
Android App實現(xiàn)應用內(nèi)部自動更新的最基本方法示例
這篇文章主要介紹了實現(xiàn)Android App內(nèi)部自動更新的最基本方法示例,包括IIS服務器端的簡單布置,需要的朋友可以參考下2016-03-03
Flutter改變狀態(tài)變量是否必須寫在setState回調(diào)詳解

