Android中比較兩個(gè)圖片是否一致的問(wèn)題
在Fragment界面中,設(shè)置兩個(gè)圖片一致如下:
默認(rèn)設(shè)置圖片為:
binding.ivArrow.setImageResource(R.drawable.icon_down);
先獲取默認(rèn)圖片,再和其它兩張圖片做對(duì)比,然后處理業(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é)果如下:
顯然通過(guò)日志發(fā)現(xiàn),每個(gè)圖片的資源都不一致,這是為什么,通過(guò)點(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)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ASP編碼必備的8條原則2. 使用css實(shí)現(xiàn)全兼容tooltip提示框3. 一文帶你搞懂JavaScript中的進(jìn)制與進(jìn)制轉(zhuǎn)換4. 匹配模式 - XSL教程 - 45. 詳解JS前端使用迭代器和生成器原理及示例6. 得到XML文檔大小的方法7. 詳解CSS偽元素的妙用單標(biāo)簽之美8. ASP基礎(chǔ)知識(shí)Command對(duì)象講解9. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)10. 怎樣才能用js生成xmldom對(duì)象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?
