2013-01-04 15 views
0

J'essaie d'utiliser le chargeur d'images universel pour charger des images dans un gridview mais mon application semble se briser juste quand l'activité se charge et je ne peux pas identifier le problème. Je charge les images à partir d'un tableau puis appelle l'adaptateur d'image pour les peupler.Chargement des images dans Gridview

Toute aide sera grandement appréciée :)

public class MainActivity extends Activity { 

String[] imageUrls; 

DisplayImageOptions options; 
protected ImageLoader imageLoader = ImageLoader.getInstance(); 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Bundle bundle = getIntent().getExtras(); 
    imageUrls = bundle.getStringArray(Extra.IMAGES); 

    options = new DisplayImageOptions.Builder() 
     .showStubImage(R.drawable.stub_image) 
     .showImageForEmptyUri(R.drawable.image_for_empty_url) 
     .cacheInMemory() 
     .cacheOnDisc() 
     .bitmapConfig(Bitmap.Config.RGB_565) 
     .build(); 

    GridView gridView = (GridView) findViewById(R.id.gridview); 
    gridView.setAdapter(new ImageAdapter()); 


} 

public class ImageAdapter extends BaseAdapter { 
    @Override 
    public int getCount() { 
     return imageUrls.length; 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     final ImageView imageView; 
     if (convertView == null) { 
      imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false); 
     } else { 
      imageView = (ImageView) convertView; 
     } 

     imageLoader.displayImage(imageUrls[position], imageView, options); 

     return imageView; 
    } 
} 

}

Logcat Erreur:

01-04 14:43:40.990: E/AndroidRuntime(11510): FATAL EXCEPTION: main 
01-04 14:43:40.990: E/AndroidRuntime(11510): java.lang.RuntimeException: ImageLoader must be init with configuration before using 
01-04 14:43:40.990: E/AndroidRuntime(11510): at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:175) 
01-04 14:43:40.990: E/AndroidRuntime(11510): at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:131) 
01-04 14:43:40.990: E/AndroidRuntime(11510): at com.example.breaktheglass.ImageGridActivity$ImageAdapter.getView(ImageGridActivity.java:96) 

J'ajouté ceci:

ImageLoader.init(ImageLoaderConfiguration.createDefault(this)); 

avant appelé la imageloader (ci-dessous th e .getInstance), mais il me donne juste cette erreur:

Syntax error on token "init", Identifier expected after this token 

Je ne suis pas tout à fait sûr où aller d'ici ..

+0

plz partagent pleinement logcat ... –

+0

Mis à jour avec logcat complet =) – Jonny07

+0

afficher le code mis à jour avec les paramètres de configuration .. –

Répondre

1

il suffit de changer votre séquence de code comme celui-ci,

protected ImageLoader imageLoader; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    imageLoader = ImageLoader.getInstance(); 
    imageLoader.init(ImageLoaderConfiguration.createDefault(this)); 

Laissez-moi savoir ce qui se passe ..

Pour plus de détails, consultez https://github.com/nostra13/Android-Universal-Image-Loader

+0

Merci qui a fonctionné. Il semble que j'essayais d'obtenir l'instance avant de l'instancier lol ...: P – Jonny07