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);}
打印結(jié)果如下:
顯然通過日志發(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)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!
相關文章:
1. PHP設計模式中工廠模式深入詳解2. JSP數(shù)據(jù)交互實現(xiàn)過程解析3. .NET中l(wèi)ambda表達式合并問題及解決方法4. 解決AJAX返回狀態(tài)200沒有調(diào)用success的問題5. ThinkPHP5實現(xiàn)JWT Token認證的過程(親測可用)6. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明7. 利用promise及參數(shù)解構(gòu)封裝ajax請求的方法8. CSS hack用法案例詳解9. Ajax實現(xiàn)表格中信息不刷新頁面進行更新數(shù)據(jù)10. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向
