안드로이드 최적화 목록의 끊김 현상

중요한 점: 주 스레드에서 시간 소모 조작을 하지 않고 미끄럼의 원활도를 높일 수 있다
  • getView에서 시간 소모 작업을 수행하지 마십시오.getView에서 직접 그림을 불러오는 것은 틀림없이 끊길 것이다. 그림을 불러오는 것은 시간이 걸리기 때문에, 이러한 조작은 반드시 비동기적인 방식으로 처리해야 한다. 예를 들어 ImageLoader에서의 실현
  • 비동기 작업의 실행 빈도를 제어한다. getView에서 ImageLoader의bindBitmap 방법으로 비동기적으로 그림을 불러오지만 사용자가 빈번하게 위아래로 미끄러지면 순식간에 수백 개의 비동기 작업이 발생한다. 이런 비동기 작업은 스레드 탱크의 혼잡을 초래하고 대량의 UI 업데이트를 가져온다.이 때 목록이 미끄러질 때 그림을 불러오지 않고 정지할 때 그림을 불러오는 것을 고려할 수 있습니다. 예를 들어
  • public void onScrollStateChanged(AbsListView view, int scrollState) {
    if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
    mIsGridViewIdle = true;
    mImageAdapter.notifyDataSetChanged();
    } else {
    mIsGridViewIdle = false;
    }
    }

    그런 다음 getView에서 다음과 같이 판단합니다.
    if (mIsGridViewIdle && mCanGetBitmapFromNetWork) {
        imageView.setTag(R.id.imageloader_uri,uri);
    Glide.with(getApplicationContext()).load(uri).placeholder(R.drawable.image_default).crossFade().into(imageView);
    //mImageLoader.bindBitmap(uri, imageView, mImageWidth, mImageWidth);
    }
  • 하드웨어 가속: 설정android:hardwareAccelerated="true"
  • 좋은 웹페이지 즐겨찾기