2014-01-18 2 views
0

나는 android app에 글을 쓰고 있으며 현재 나의 작업은 URL에서 이미지를로드하여 ImageView에 표시하는 것입니다. 지금까지 내가 한 일은 : 이미지를 다운로드하여 비트 맵으로 저장할 수있었습니다. 난 결과 내 비트 맵 이미지입니다android를 사용하여 인터넷에서 이미지 표시

intentRecord.putExtra("Data",(DownloadDataImage) result); 

를 통해 목적에 추가 할 때 지금, 비트 맵이 직렬화 가능하지 않기 때문에 오류가 발생합니다 및 .putExtra()는 직렬화 입력이 필요합니다. 혹시 나에 대한 해결 방법을 알고 계십니까? 나는 적절한 방법으로 내 문제를 회피하는 방법을 모른다.

비트 맵을 사용하지 않고 대신 다른 serializable 형식을 사용하여 이미지를 imageView에 추가 할 수 있습니까? 아니면 내 비트 맵을 직렬화 할 수있는 효과적인 방법이 있습니까? 나는 이것이 가능하다는 것을 안다. 그러나 나는 이것을 어떻게하는지 확실히 모른다.

많은 도움을 얻으세요.

답변

0

당신이 Universal Image Loader 같은 외부 라이브러리를 사용하고 캐시 관리와 다른 것들에 대해 걱정할 필요가 없습니다 ...

1

나는 당신이 취급/캐싱 이미지의 노력을 할 picasso을 시도하는 것이 좋습니다. 작업 공간에 jar 파일이 있으면 코드 한 줄만 있으면됩니다.

Picasso.with (context) .load (image_url) .into (imageView);

1

인텐 트 엑스트라에 넣을 수있는 크기의 상한선이 있기 때문에 이미지를 ImageView로 가져 오는 다른 방법을 찾아야합니다. 매우 높은 수준에서

이의 단계가 될 수있다 :

  • IntentService 다운로드 이미지 저장이 어딘가에 그 (메모리 캐시 또는 디스크) 전역으로 액세스 할 수 있습니다.
  • 다운로드가 완료되고 서비스가 어딘가에 이미지를 저장하면 브로드 캐스트를 전송하여 앱의 BroadcastReceivers가 이미지를 사용할 수 있음을 알립니다.
  • ImageView를 호스팅하는 활동 또는 조각의 BroadcastReceiver가 저장된 위치에서 이미지를 검색하여 ImageView 내부에 배치합니다 (디스크의 경우 메인 스레에서이 검색을 수행해야 함).

다른 답변자들도 언급했듯이 많은 상용구 작업이있는 프레임 워크가 있습니다. Picasso은 droidx에서 제안한대로 구현하기 쉽고 아마도 가장 좋은 방법 일 것입니다.

+0

thx brandon과 droidx, 나는 피카소를 시험해 볼 것이고, 그것이 당신을 위해 한 것처럼 내게 큰 도움이되기를 바랍니다. 그러나 지금까지, 그것은 중대하게 들린다! – PKlumpp

관련 문제