亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

問題 Bean對象

沒理解 為什么要將 那3個變量 ,打包成一個Bean對象。

正在回答

3 回答

在顯示GridView的時候,適配器的getView方法會被多次調用,因此loadImage也會被多次調用,而每次調用loadImage都會通過refreashBitmap方法來mUIHandler.sendMessage,而Task中refreashBitmap會新的線程中去執行,因此也許會有多個線程并發執行,也許當執行某一個loadImage的時候,正好mUIHandler的handleMessage也剛好在處理一個非該loadImage而sendMessage的message(注意:mUIHandler的handleMessage是在主線程中),如果不用ImgBeanHolder,就可能導致用msg.obj來取bitmap與剛才說的loadImage的參數的path和imageView發生錯亂

1 回復 有任何疑惑可以回復我~

在mUIHandler中的handleMessage中不能直接用msg.obj來取bitmap(前提是在sendMessage的時候只在msg.obj中綁定bitmap)然后根據loadImage方法參數path和imageView來設置圖片,因為mUIHandler中的handleMessage在執行的時候所獲得的bitmap不一定是當前的(與之對應的)path和imageView(也就是當前loadImage方法的參數path和imageView,因為mUIHandler是在loadImage中初始化的,所以mUIHandler的handleMessage可以直接調用loadImage方法的參數path和imageView),因為我們會根據path用getBitmapFromLruCache方法在緩存中獲取圖片,或者異步去加載(開啟新的線程去加載),加載完成后會回調mUIHandler中的handleMessage


1 回復 有任何疑惑可以回復我~

由于是在線程中處理的bitmap以及imageView,而在handler所在的那個函數中,imageView、path、bitmap是不確定是否為當前傳入的變量。因此封裝成一個bean對象,防止出現錯誤。還有個好處就是message對象可以攜帶一個object對象,因此將三個變量封裝bean對象,也是極好的

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Android-仿微信圖片選擇器
  • 參與學習       29292    人
  • 解答問題       98    個

微信中的圖片選擇器綜合案例不容錯過,整體思路值得一學

進入課程

問題 Bean對象

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號