Android中比較兩個(gè)圖片是否一致的問題
在Fragment界面中,設(shè)置兩個(gè)圖片一致如下:
默認(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),每個(gè)圖片的資源都不一致,這是為什么,通過點(diǎn)擊getDrawable查看源碼發(fā)現(xiàn)


這個(gè)不是我們想要的,我們要的是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中比較兩個(gè)圖片是否一致的文章就介紹到這了,更多相關(guān)Android 比較兩個(gè)圖片是否一致內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 基于android studio的layout的xml文件的創(chuàng)建方式2. 編程語言PHP在Web開發(fā)領(lǐng)域的優(yōu)勢在哪?3. 解決Android studio xml界面無法預(yù)覽問題4. 詳解Android studio 動(dòng)態(tài)fragment的用法5. 圖文詳解vue中proto文件的函數(shù)調(diào)用6. Android如何加載Base64編碼格式圖片7. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁效果(實(shí)例代碼)8. 什么是python的自省9. Springboot Druid 自定義加密數(shù)據(jù)庫密碼的幾種方案10. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)

網(wǎng)公網(wǎng)安備