2013-08-23 3 views
0

Volley를 사용하여 이미지를 다운로드하고 디스크 캐시에 저장 한 다음 ImageView에 표시하고 있습니다. 나는 그것을 성공적으로 해냈지만, 지금 원하는 것은 새로운 차원 (일종의 섬네일)으로 다운로드 된 비트 맵의 ​​크기를 조절하는 것입니다. 원래 비트 맵과 미리보기 이미지를 모두 디스크에 저장할 수 있다면 좋을 것입니다.Android Volley 이미지가 표시되기 전에 미리보기를 만듭니다.

어떻게 할 수 있습니까?

답변

2

Android에서 비트 맵을 관리하는 일은 복잡하고 많은 메모리를 소비합니다. 미리보기 이미지를 처리하는 가장 효율적인 방법은 서버에서 보유하고있는 모든 이미지에 대해 축소판 버전을 만들어 이미지 조작이 이미 "오프라인"으로 완료되었으며 올바른 버전을 사용하기 만하면됩니다. 작은 이미지를 효과적으로 다운로드 할 수 있어야하며, 요청시 풀 사이즈 이미지를 지연로드해야합니다.

  1. 간단한 만들기 : 당신이 이미지를 보유하고있는 서버를 제어하지 않으며, 자신을 그런 서버를 만들 상관하지 않는 경우

    그러나, 여기 당신이 원하는 당신이 달성 할 수있는 하나의 방법입니다 메모리 캐싱 (또는 디스크 캐싱, 또는 둘 다 원한다면)을 위해 Bitmap 캐시.

    A :

  2. 당신이 당신의 ImageView (재 크기의 이미지를 표시하는 하나)에서 이미지를 표시 할

    는 다음을 수행합니다. 미리보기 이미지가있는 경우 캐시를 확인하십시오. 반환하고 표시하는 경우

    b. 요청하지 않으면 결과에 대한 수신기를 할당합니다.

    public class MyImageListener implements ImageListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         // handle errors 
        } 
    
        @Override 
        public void onResponse(ImageContainer response, boolean isImmediate) { 
         Bitmap bitmap = response.getBitmap(); 
         if (bitmap != null) { 
    
          // manipulations, resize, etc. 
    
          // save manipulated bitmap in cache 
    
          // notify listener from section 2.b. if one exists 
         } 
        } 
    } 
    
    :

축소판 버전을 필요로 모든 이미지는 사용자 ImageListener으로 ImageLoader.get() 방법을 사용하여 요청해야한다

관련 문제