Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用universal image loader将图像设置为ImageView以外的其他视图?_Android_Universal Image Loader_Imageswitcher - Fatal编程技术网

Android 如何使用universal image loader将图像设置为ImageView以外的其他视图?

Android 如何使用universal image loader将图像设置为ImageView以外的其他视图?,android,universal-image-loader,imageswitcher,Android,Universal Image Loader,Imageswitcher,我需要通过从服务器下载将图像设置到ImageSwitcher。但通用图像加载器似乎将ImageView作为一个参数 我听说我们可以使用ImageAware在任何android视图上显示图像 有人能帮我怎么做吗 谢谢, Sneha改用loadImage。这将得到一个位图,你可以用它做任何你想做的事情 // Load image, decode it to Bitmap and return Bitmap to callback imageLoader.loadImage(imageUri, new

我需要通过从服务器下载将图像设置到ImageSwitcher。但通用图像加载器似乎将ImageView作为一个参数

我听说我们可以使用ImageAware在任何android视图上显示图像

有人能帮我怎么做吗

谢谢,
Sneha

改用
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
    }
});

您还可以使用
ImageAware
界面包装视图。然后您可以将这个包装器传递到
displayImage(…)
方法中


您可以查看
ImageViewAware
,了解它是如何包装
ImageView
的。因此,您可以以相同的方式包装任何视图。

最后,您可以检查加载程序是否为ImageAware显示图像

下面是代码displayImage(字符串,ImageView)

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);
}
因此,您可以看到,ImageView使用setImageBitmap显示位图,而另一个视图将使用setBackground,这是我的其他视图类

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));
}

Sneha,我对Universal Image Loader了解不多,但我认为Android Query可以使用它。奥利维亚:谢谢你的快速回复!成功了:)
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));
}