일부 이미지가있는 격자보기가있는 앱을 프로그래밍하고 있으며 모든 이미지가 화면에 맞지 않을 수 있으므로 기본 세로 스크롤을 사용하고 있습니다. 항상 스크롤을하고 새 행이 표시 될 때 새 행의 렌더링에 지연이있는 것으로 보입니다.android gridview lag on scroll
모든 이미지는 드로어 블이므로 최소한 이미지를로드하는 것과 같은 이유로 명시 적으로는 발생하지 않습니다. 그래서, 문제를 해결하는 방법에 대한 모든 아이디어? 내 atrix에서 스크롤이 지연되고 앱이 실행될 최종 장치가 그보다 훨씬 나쁩니다.
편집 - 여기에 몇 가지 코드 :
public View getView(int position, View convertView, ViewGroup parent) {
T item = getItem(position);
Box box = convertView == null ? new Box(mContext) : (Box) convertView;
onBindModel(box, item);
return box;
}
및
@Override
public void onBindModel(Box box, Model item) {
box.param.putSerializable("model", item);
box.setDescricao(item.getNome());
box.getModelImageView().setImageResource(item.thumbResId);
}
편집
제안 그래서, 그냥이 코드를 시도했지만 여전히 같은 결과를 얻을 수 :
@Override
public void onBindModel(final Box box, final Model item) {
box.param.putSerializable("model", item);
box.setDescricao(item.getNome());
new Thread(){
public void run() {
Message msg = new Message();
msg.obj =box.getModelImageView();
msg.arg1 =item.thumbResId;
mHandler.sendMessage(msg);
}
}.start();
}
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message message) {
Bitmap bm = BitmapFactory.decodeResource(getResources(), message.arg1);
setImage((ImageView) message.obj,bm);
}
};
public void setImage(ImageView imgView, Bitmap bm) {
imgView.setImageBitmap(bm);
}
다음 줄로 스크롤 할 때 응답이 없으면 정상적으로 계속됩니다. 사전에
덕분에
Glide를 사용합니다. 이것에 대한 많은 이유가있을 수 있습니다. – Samuel
문제를 해결 했습니까? 나는 같은 문제를 겪고있다. 이미지는 서버에서로드되고 별도의 스레드에서 디코딩됩니다. UI-THread에서 setImageBitMap을 수행하면 여전히 약간 뒤떨어져 있습니다. ... –
실제로 UI 디자인이 변경되었지만 새 디자인에서는 여러 개의 격자를 사용하여 여러 페이지를 만들었습니다. 페이징을 할 때 전체 그리드를 스 와이프합니다. 그러나 내가 편집에 실제로 게시 한 코드는 더 나은 방법으로 이미지를로드하고, 액티비티/프래그먼트의로드를 차단하지 않으며 나머지 응용 프로그램에 대한 핸들러 접근 방식을 사용하고 있습니다. – RMalke