2013-01-04 67 views
0

我試圖使用通用圖像加載器將圖像加載到gridview,但當應用程序加載時我的應用程序似乎正在崩潰,而我無法識別問題。我從數組中加載圖像,然後調用圖像適配器來填充它們。將圖像加載到Gridview中

所有幫助將不勝感激:)

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的錯誤:

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) 

所以我加了這一點:

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

之前我叫imageloader(在th下面Ë.getInstance),但是它只是給我這個錯誤:

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

我不太知道從哪裏何去何從..

+0

PLZ共享全logcat ... –

+0

更新與完整的logcat =) – Jonny07

+0

顯示更新的代碼與配置設置.. –

回答

1

只要改變你這樣的代碼序列,

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

讓我知道發生什麼事..

有關詳細信息,看看https://github.com/nostra13/Android-Universal-Image-Loader

+0

感謝工作。看來我試圖在實例化它之前嘗試獲取實例lol ...:P – Jonny07