2015-02-05 2 views
0

큰 이미지가 포함 된 ListView이 있습니다.이 이미지는 휴대 전화의 스크린 샷으로 채워져 있습니다. ListView을 스크롤하면 새로운 View이 표시 될 때마다 딸꾹질이 있습니다. 이미지 설정으로 인해 알 수 있습니다. 큰 이미지를 설정할 때 ImageView 딸꾹질

가 I이 때문에 Bitmap에 I가 AsyncTask의 리소스로부터 Bitmap를 만들려고하므로 마샬링 수있다 생각하고 UI 스레드에 ImageView의 소스 비트 맵으로 설정 여전히 현저한 딸꾹질 및 삭제가 스크롤 내 프레임은 ListView입니다.

전체 이미지가 ImageView 인 경우에도 작은 이미지를 사용할 때 문제가되지 않는 것 같습니다. 불행하게도, 내가 표시하려고하는 이미지는 본질적으로 스크린 샷이므로 전화 화면의 크기와 거의 동일합니다.

ImageView의 용기에 대한 탐험을 시작하기 전에이를 피하기 위해 할 수있는 일이 있습니까? 분명히 이미지의 크기에 의존하는 UI 스레드에서 수행중인 작업이 있지만 다른 스레드로 회피하거나 섞어서 처리 할 수 ​​있습니까?

+0

Picasso와 같은 이미지 로딩 라이브러리를 사용하여 이미지를로드 할 수 있으며, UI 최적화가되어 큰 이미지 크기로 인해 충돌하지 않습니다. –

+0

내 문제가 충돌하지 않으며 이미지를 다운로드하지도 않습니다. 모두 잘 작동합니다. 이것은 모두 Android의 ImageView와 관련이 있습니다. 이미지는 서버에서도로드되지 않습니다. 이 질문의 목적 상, 앱에있는 모든 리소스라고 상상해보십시오. – Catherine

+0

그렇다면 귀하의 쟁점은 무엇입니까? 문제가 없다면 왜이 질문이 나옵니까? –

답변

0

사용자 지정 목록보기 어댑터 클래스에서 Handler 클래스를 사용하여 소스를 post() 방법으로 설정해보십시오.

예컨대

new Handler().post(new Runnable() { 

    @Override 
    public void run() { 
     // TODO Auto-generated method stub 

     imageView.setImageResource(R.drawable.demoImage); 
    } 
}); 

희망이 도움이 될 것입니다.

+0

그래도 문제가 해결되지 않습니다. 문제는 이미지 리소스를 설정할 때 UI 속도가 느려지다는 것입니다. UI 스레드에서 설정할 수있는 것은 아닙니다. UI 스레드에서 설정하는 데 문제가 없습니다. – Catherine

+0

핸들러 포스트 메서드를 사용하면 모든 이미지가 별도의 스레드에로드되므로 목록보기를보다 원활하게 전환하는 데 도움이됩니다. 나는 listview에서 이미지를 로딩하는 것과 같은 문제를 가지고있다. 그리고 나는이 방법으로 일을 끝냈다. 또한 이미지로드를 위해 https://github.com/nostra13/Android-Universal-Image-Loader 라이브러리를 사용할 수도 있습니다. –

+0

핸들러 포스트 메소드는 핸들러가 작성된 모든 스레드에서 해당 조치를 수행합니다. – Catherine

관련 문제