2010-11-19 4 views
0

나는 인터넷내 안드로이드 응용 프로그램의 실행 속도가 느려지는 이유는 무엇입니까?

ImageView iv = new ImageView; 
URL url = new URL(address); 
InputStream content = (InputStream)url.getContent(); 
Drawable d = Drawable.createFromStream(content , "src"); 
iv.setImageDrawable(d) 

에서 severl 이미지를 표시하려면이 코드를 사용하고 있지만 응용 프로그램이 왜 실행 느린되었다 ?? 인터넷 연결이 이유입니까 ??? 또는 내가 각 이미지를 표시하기 위해 여러 입력 스트림을 입력했기 때문에 ???

+0

이미지를로드하는 데 스레드를 사용합니까? 태스크가 꽤 오랜 시간이 걸릴 수 있기 때문에 인터넷에서 무언가를로드해야 할 때 유용합니다. – Javi

답변

2

AsyncTask를 사용하거나 별도의 스레드를 사용하여 비동기 적으로 InputStream 및 Drawable.createFromStream (...)을 만든 다음 처리가 끝나면 Handler를 사용하여 ImageView를 업데이트해야합니다. AsyncTask가 선호됩니다.

http://developer.android.com/reference/android/os/AsyncTask.html

+0

간단한 예를 보여줄 수 있습니까? – Adham

+0

위에 링크 된 API 페이지, Android 개발자 블로그 http://android-developers.blogspot.com/2009/05/painless-threading.html의 예가 있습니다. – GeekYouUp

+0

유용합니까 ?? http://stackoverflow.com/questions/1905399/listitem-lazyload-asynctask-image-display-problem – Adham

관련 문제