2014-11-13 6 views
0

서버에서 이미지를 다운로드하여 ImageSwitcher에 이미지를 설정해야합니다. 그러나 유니버설 이미지 로더는 ImageView를 매개 변수로 사용하는 것으로 보입니다.ImageView 이외의 다른보기로 이미지를 설정하는 데 범용 이미지 로더를 어떻게 사용할 수 있습니까?

나는 모든 안드로이드 뷰에서 이미지를 표시하기 위해 ImageAware를 사용할 수 있다고 읽었습니다.

누군가이 문제를 해결하는 방법을 알려 줄 수 있습니까?

감사합니다, 스 네하

+0

Sneha, Universal Image Loader에 대해 많이 알지 못합니다.하지만 Android Query가이 문제를 해결할 것이라고 생각합니다. –

답변

1

사용 loadImage 대신. 그러면 원하는대로 할 수있는 비트 맵을 얻을 수 있습니다.

// Load image, decode it to Bitmap and return Bitmap to callback 
imageLoader.loadImage(imageUri, new SimpleImageLoadingListener() { 
    @Override 
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
     // Do whatever you want with Bitmap 
    } 
}); 
+0

Oliveria : 빠른 응답에 감사드립니다! 그것은 일했다 :) – Neha

0

ImageAware 인터페이스로보기를 감쌀 수도 있습니다. 그리고이 래퍼를 displayImage(...) 메서드에 전달할 수 있습니다.

ImageViewAware으로 넘어 가서 ImageView이 어떻게 감싸는 지 알 수 있습니다. 따라서 같은 방식으로 모든보기를 래핑 할 수 있습니다.

0

당신이 마지막

ImageAware 코드 displayImage (문자열, 이미지 뷰)에 대한 그 로더 디스플레이 이미지를 확인할 수는

public void displayImage(String uri, ImageView imageView) { 
    this.displayImage(uri, (ImageAware)(new ImageViewAware(imageView)), (DisplayImageOptions)null, (ImageLoadingListener)null, (ImageLoadingProgressListener)null); 
} 

이하 그리고 ImageAware는 추상 클래스를 확장 ViewAware, 여기에 두 가지 중요한 방법이 있습니다

,
protected abstract void setImageDrawableInto(Drawable var1, View var2); 

protected abstract void setImageBitmapInto(Bitmap var1, View var2); 

검사 두 방법은 ImageAware에 의해 구현

protected void setImageDrawableInto(Drawable drawable, View view) { 
    ((ImageView)view).setImageDrawable(drawable); 
    if(drawable instanceof AnimationDrawable) { 
     ((AnimationDrawable)drawable).start(); 
    } 

} 

protected void setImageBitmapInto(Bitmap bitmap, View view) { 
    ((ImageView)view).setImageBitmap(bitmap); 
} 

그래서 당신은 다른보기 을 setBackground의 사용하면서 이미지 뷰, 여기, 비트 맵을 표시 setImageBitmap를 사용 것을 볼 수있다 다른보기의 클래스입니다.

public class CustomViewAware extends ViewAware { 
public CustomViewAware(View view) { 
    super(view); 
} 

@Override 
protected void setImageDrawableInto(Drawable drawable, View view) { 
    view.setBackgroundDrawable(drawable); 
} 

@Override 
protected void setImageBitmapInto(Bitmap bitmap, View view) { 
    view.setBackgroundDrawable(new BitmapDrawable(bitmap)); 
}