2013-03-25 51 views
3

我想要使用Android通用圖像加載程序的gridview和listview。如何使用「Android通用圖像加載程序」

https://github.com/nostra13/Android-Universal-Image-Loader

我下載並修改它。

它工作正常,但是當我更改並移動源到另一個項目時,它崩潰了。

我不知道爲什麼:(

沒有錯誤和任何錯誤消息。

我認爲這是零點錯誤或啓動庫。

我認爲錯誤將帶有此一部分。

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

public class ImageAdapter extends BaseAdapter { 
    @Override 
    public int getCount() { 
     Log.v("OWL","TEST1"); 
     return imageUrls.length; 
    } 

    @Override 
    public Object getItem(int position) { 
     Log.v("OWL","TEST2"); 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     Log.v("OWL","TEST3"); 
     return position; 
    } 

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

     imageLoader.displayImage(imageUrls[position], imageView, options); 
     Log.v("OWL","TEST7"); 
     return imageView; 
    } 
} 

我無法看到LOGCAT上的TEST6,TEST7

我附上了日誌打擊。請幫助我或讓我知道如何使用該庫。

03-25 18:24:17.208: D/AndroidRuntime(312): Shutting down VM 
03-25 18:24:17.208: W/dalvikvm(312): threadid=1: thread exiting with uncaught exception (group=0x41693438) 
03-25 18:24:17.228: E/AndroidRuntime(312): FATAL EXCEPTION: main 
03-25 18:24:17.228: E/AndroidRuntime(312): java.lang.IllegalStateException: ImageLoader must be init with configuration before using 
03-25 18:24:17.228: E/AndroidRuntime(312): at com.nostra13.universalimageloader.core.ImageLoader.checkConfiguration(ImageLoader.java:359) 
03-25 18:24:17.228: E/AndroidRuntime(312): at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:200) 
03-25 18:24:17.228: E/AndroidRuntime(312): at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:162) 
03-25 18:24:17.228: E/AndroidRuntime(312): at com.kmob.camera.ImageGridActivity$ImageAdapter.getView(ImageGridActivity.java:117) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.AbsListView.obtainView(AbsListView.java:2449) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.GridView.onMeasure(GridView.java:1030) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.View.measure(View.java:15364) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:617) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:399) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.View.measure(View.java:15364) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4824) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.View.measure(View.java:15364) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4824) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1396) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.View.measure(View.java:15364) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4824) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
03-25 18:24:17.228: E/AndroidRuntime(312): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2359) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.View.measure(View.java:15364) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1974) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1217) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1390) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1110) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4472) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.Choreographer.doCallbacks(Choreographer.java:555) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.Choreographer.doFrame(Choreographer.java:525) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.os.Handler.handleCallback(Handler.java:615) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.os.Handler.dispatchMessage(Handler.java:92) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.os.Looper.loop(Looper.java:137) 
03-25 18:24:17.228: E/AndroidRuntime(312): at android.app.ActivityThread.main(ActivityThread.java:4918) 
03-25 18:24:17.228: E/AndroidRuntime(312): at java.lang.reflect.Method.invokeNative(Native Method) 
03-25 18:24:17.228: E/AndroidRuntime(312): at java.lang.reflect.Method.invoke(Method.java:511) 
03-25 18:24:17.228: E/AndroidRuntime(312): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 
03-25 18:24:17.228: E/AndroidRuntime(312): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
03-25 18:24:17.228: E/AndroidRuntime(312): at dalvik.system.NativeStart.main(Native Method) 
+0

'03-25 18:24:17.228:E/AndroidRuntime(31 2):java.lang.IllegalStateException:在使用'之前,ImageLoader必須是init的配置。學習閱讀logcat。您的加載程序沒有初始化配置。使用克羅格的答案,並刪除你不需要的部分。 – 2013-03-26 02:10:40

回答

9

的你解決這個問題呢?你需要初始化的UniversalImageLoader示例代碼的ImageLoader的:

File cacheDir = StorageUtils.getCacheDirectory(context); 
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) 
     .memoryCacheExtraOptions(480, 800) // default = device screen dimensions 
     .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75) 
     .taskExecutor(AsyncTask.THREAD_POOL_EXECUTOR) 
     .taskExecutorForCachedImages(AsyncTask.THREAD_POOL_EXECUTOR) 
     .threadPoolSize(3) // default 
     .threadPriority(Thread.NORM_PRIORITY - 1) // default 
     .tasksProcessingOrder(QueueProcessingType.FIFO) // default 
     .denyCacheImageMultipleSizesInMemory() 
     .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // default 
     .memoryCacheSize(2 * 1024 * 1024) 
     .discCache(new UnlimitedDiscCache(cacheDir)) // default 
     .discCacheSize(50 * 1024 * 1024) 
     .discCacheFileCount(100) 
     .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default 
     .imageDownloader(new BaseImageDownloader(context)) // default 
     .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default 
     .enableLogging() 
     .build(); 
+0

謝謝。示例項目在Manifest文件中初始化imageLoader !!!!!我不知道:( – Joseph 2013-03-26 04:46:33

+0

你是什麼意思初始化在Manifest文件中的imageLoader? – Kgrover 2013-03-26 06:58:15

+0

非常感謝!! – 2013-04-09 10:26:41

1

看起來無論你創建你imageLoader,你需要調用imageLoader.init(someConfigObject);

someConfigObject的類型是ImageLoaderConfiguration

0

使用這個簡單的代碼工作

初始化ImageLoader的成侑適配器類

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

然後使用下面的代碼到放置在設置圖像它將工作...

DisplayImageOptions options=new DisplayImageOptions.Builder() 
       .cacheInMemory(true) 
       .resetViewBeforeLoading(true) 
       .showImageOnFail(R.drawable.stories_holder_sq) 
       .showImageForEmptyUri(R.drawable.stories_holder_sq) 
       .showImageOnLoading(R.drawable.stories_holder_sq) 
       .build(); 
     imageLoader.displayImage(naturalDashBoardBean.getImgUrl(), categoryViewHolder.categoryItemImg, options); 
+0

如果你需要更多有關通用圖像加載器和加載簡單方法的信息,並且還緩存圖像視圖以嘗試此操作http://stackoverflow.com/a/40154744/6477998 – 2016-10-20 13:24:32

相關問題