您好我正在使用Android库的通用图像加载程序将图像异步下载到我的Android
应用程序。
在Activity
上使用它时工作正常,但我无法在Adapter
它显示默认图像,但不显示myUrl中的图像。
这里有我的代码:
public class AdapatadorImagenesDetalle extends BaseAdapter {
private Context contexto;
private int position;
ImageView imageView;
public AdapatadorImagenesDetalle(Context c,int pos) {
contexto = c;
position = pos;
}
public int getCount() {
return 4;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int positionView, View convertView, ViewGroup parent) {
imageView = new ImageView(contexto);
ImageLoader.getInstance().displayImage(myUrl, imageView, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view)
{
imageView.setImageResource(R.drawable.image);
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason)
{
imageView.setImageResource(R.drawable.image);
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
imageView.setImageResource(R.drawable.image);
}
});
return imageView;
}
}
任何线索为什么会发生这种情况?
提前致谢
编辑:我想在生态画廊上展示这些图片答案 0 :(得分:1)
试试这个
@Override
public void onLoadingStarted(String imageUri, View view) {
((ImageView)view).setImageResource(R.drawable.image);
}
同时检查:
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
}
看起来你没有实现这个方法。可能你需要那个:
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
((ImageView)view.setImageBitmap(loadedImage))
}
答案 1 :(得分:0)
我在一个名为“TratarImagenes”西班牙语的类中为“ProcessImages”创建了一个静态方法,然后覆盖了UIL方法。此方法还计算下载过程的时间(以毫秒为单位),因此您可以将其用于测试建议。
public class TrataImagenes {
public static ImageLoader imageLoader;
/**
* Este método carga una imagen desde una URL o url local, y si falla, muestra la imagen
* pasada como ID resource imgenFalloDireccionRDrawable.
*
* @param urlDeLaImagen url de la imagen a cargar
* @param imageView ImageView donde se carga la imagen
* @param imgenFalloDireccionRDrawable dirección del drawable a cargar si falla
* @return
*/
public static boolean cargarImagenConUIL(
String urlDeLaImagen, final ImageView imageView, final int imgenFalloDireccionRDrawable) {
final boolean[] funciona = {false};
imageLoader = ImageLoader.getInstance();
final long[] antesTiempo = {0};
imageLoader.displayImage(
urlDeLaImagen, imageView, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
antesTiempo[0] = System.currentTimeMillis();
view.setVisibility(View.INVISIBLE);
}
@Override
public void onLoadingFailed(
String imageUri, View view, FailReason failReason) {
funciona[0] = false;
Log.e("Universal Image Loading:", "falló la carga");
((ImageView) view).setImageResource(imgenFalloDireccionRDrawable);
view.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
funciona[0] = true;
view.setVisibility(View.VISIBLE);
Log.i("Universal Image Loading", "OK" + "en" + " "+ String.valueOf(System.currentTimeMillis()-antesTiempo[0]));
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
funciona[0] = false;
Log.e("Universal Image LOading:", "descarga cancelada");
}
});
return funciona[0];
}
}
还要记住实现UIL的选项和配置。我在ApplicationClass中做了,上面的选项和配置都是一个例子,你可以根据你的需要使用默认或海关选项和配置。
public void cargarConfiguracionDeUniversalImageLoader() {
//UNIVERSAL IMAGE LOADER OPCIONES
DisplayImageOptions optionesBasicas = new DisplayImageOptions.Builder()
//Roberto- Haciendo pruebas con el monitor de memoria.
//desabilitar el caché de memoria ahorra hasta 10 MB en ejecución.
.bitmapConfig(Bitmap.Config.RGB_565)
.considerExifParams(true)
// Bitmaps in RGB_565 consume 2 times less memory than in ARGB_8888.
.imageScaleType(ImageScaleType.EXACTLY).cacheInMemory(true).cacheOnDisk(true)
.displayer(new FadeInBitmapDisplayer(500)).build();
// UNIVERSAL IMAGE LOADER CONFIGURACION----------
ImageLoaderConfiguration configuracionBasica =
new ImageLoaderConfiguration.Builder(this).threadPoolSize(2).defaultDisplayImageOptions(optionesBasicas)
.diskCacheExtraOptions(480, 320, null).
diskCacheSize(50 * 1024 * 1024).diskCacheFileCount(100).build();
ImageLoader.getInstance().init(configuracionBasica);
}
我希望这篇文章可以帮助你。