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 比較兩個圖片是否一致內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android Studio導入Eclipse項目的兩種方法
本文主要介紹了Android Studio導入Eclipse項目的兩種方法。具有一定的參考價值,下面跟著小編一起來看下吧2017-01-01
Android Zygote啟動構造流程及進程創(chuàng)建詳解
這篇文章主要為大家介紹了Android Zygote啟動構造流程及進程創(chuàng)建詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
Android中ViewPager實現(xiàn)滑動指示條及與Fragment的配合
這篇文章主要介紹了Android中ViewPager實現(xiàn)滑動指示條及與Fragment的配合,使用Fragment實現(xiàn)ViewPager的滑動是一種比較推薦的做法,需要的朋友可以參考下2016-03-03

