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

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


這個不是我們想要的,我們要的是id,怎么解決呢,因?yàn)槭窃贔ragment中,所以要加上 getActivity()


設(shè)置完后,看下效果

完整代碼如下:
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);
}
到此這篇關(guān)于Android中比較兩個圖片是否一致的文章就介紹到這了,更多相關(guān)Android 比較兩個圖片是否一致內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
android實(shí)現(xiàn)動態(tài)顯隱進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)動態(tài)顯隱進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
Android開發(fā)之a(chǎn)ctivity的生命周期詳解
這篇文章主要介紹了Android開發(fā)之a(chǎn)ctivity的生命周期,詳細(xì)分析了activity的運(yùn)行原理與生命周期,需要的朋友可以參考下2016-06-06
Android實(shí)現(xiàn)手機(jī)壁紙改變的方法
這篇文章主要介紹了Android實(shí)現(xiàn)手機(jī)壁紙改變的方法,以完整實(shí)例形式分析了Android手機(jī)壁紙改變的方法,包括頁面布局及屬性設(shè)置的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
Android Studio導(dǎo)入Eclipse項(xiàng)目的兩種方法
本文主要介紹了Android Studio導(dǎo)入Eclipse項(xiàng)目的兩種方法。具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01
Android Zygote啟動構(gòu)造流程及進(jìn)程創(chuàng)建詳解
這篇文章主要為大家介紹了Android Zygote啟動構(gòu)造流程及進(jìn)程創(chuàng)建詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
Android中ViewPager實(shí)現(xiàn)滑動指示條及與Fragment的配合
這篇文章主要介紹了Android中ViewPager實(shí)現(xiàn)滑動指示條及與Fragment的配合,使用Fragment實(shí)現(xiàn)ViewPager的滑動是一種比較推薦的做法,需要的朋友可以參考下2016-03-03
android計(jì)算器簡單實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了android計(jì)算器的簡單實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03

