[問題] GridView在上下滾動時很lag

看板AndroidDev作者 (莖莖濡吮汁)時間9年前 (2016/11/17 00:40), 編輯推噓4(408)
留言12則, 7人參與, 最新討論串1/1
小弟是Android開發新手,最近遇到了一個問題,就是在GridView裡放照片時, 上下滑動會變得很lag 這是我的ArrayAdapter的getView() public class PhotoAdapter extends ArrayAdapter<PhotoList>{ private int resourse; private List<PhotoList> PhotoLists; FrameLayout item; ImageView select; public PhotoAdapter(Context context,int resourse,List<PhotoList> p){ super(context,resourse,p); this.resourse=resourse; this.PhotoLists=p; } @Override public View getView(int position, View convertView, ViewGroup parent){ //讀取目前位置物件 final PhotoList pList= getItem(position); if(convertView==null){ item=new FrameLayout(getContext()); LayoutInflater li=(LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); li.inflate(resourse,item, true); }else { item = (FrameLayout) convertView; } TextView textView=(TextView)item.findViewById(R.id.title); TextView dateView=(TextView)item.findViewById(R.id.date_text); select=(ImageView)item.findViewById(R.id.select_item); ImageView photoView=(ImageView) item.findViewById(R.id.content); Bitmap bitmap=BitmapFactory.decodeFile(pList.getPhotoPath()); contextView.setImageBitmap(bitmap); textView.setText(pList.getTitle()); dateView.setText(pList.getLocaleDate()); select.setVisibility(pList.isSelect()? View.VISIBLE : View.INVISIBLE); return photoView; } 每次在跑的時候, 都會出現The application may be doing too much work on its main thread. 請問應該要怎麼解決呢..? q -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.240.176.158 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1479314440.A.CE6.html

11/17 01:00, , 1F
decode放到其他thread跑
11/17 01:00, 1F

11/17 16:03, , 2F
不考慮用Glide之類library的幫忙嗎
11/17 16:03, 2F

11/17 22:00, , 3F
感覺就是壓到ui thread
11/17 22:00, 3F

11/18 02:22, , 4F
用了Glide後 變很順! 謝謝建議!
11/18 02:22, 4F

11/18 10:56, , 5F
給原po的建議是 搞懂執行緒 與 同步 非同步的關係
11/18 10:56, 5F

11/18 10:56, , 6F
而非使用 library 卻不了解箇中道理
11/18 10:56, 6F

11/18 10:57, , 7F
換系統開發時 才能做到換湯不換藥 :)
11/18 10:57, 7F

11/18 11:19, , 8F
圖片要用的順,除了非同步讀取外還有cache/thumbnail這些
11/18 11:19, 8F

11/18 11:21, , 9F
問題,是應該要搞懂不過最終還是用library比較穩
11/18 11:21, 9F

11/18 13:34, , 10F
同樓上 :)
11/18 13:34, 10F

11/18 14:17, , 11F
謝各位的建議,小弟會去弄懂的:)
11/18 14:17, 11F

11/19 15:25, , 12F
圖片的大小也是要注意的地方?
11/19 15:25, 12F
文章代碼(AID): #1OB8m8pc (AndroidDev)