2016-01-25 7 views
2

Здравствуйте Имеет я создать вид образца концепции изображения универсальным образом загрузчика Lib, но у меня есть инициализация этой строка
ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(MyActivit‌​y.this)); в моем ViewpagesAdapter.classжурнала Краш андроид ImageLoader необходим инициализировать с помощью конфигурации universalimageloader

Тем не менее я получаю сообщение об ошибке :

java.lang.IllegalStateException: ImageLoader must be init with configuration before using 
at com.nostra13.universalimageloader.core.ImageLoader.checkConfiguration(ImageLoader.java:613) 
at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:236) 
at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:209) 
at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:410) 
at ****.****.adapter.ViewpagesAdapter.instantiateItem(ViewpagesAdapter.java:73) 
at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:870) 
at android.support.v4.view.ViewPager.populate(ViewPager.java:1020) 
at android.support.v4.view.ViewPager.populate(ViewPager.java:952) 
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1474) 
at android.view.View.measure(View.java:17915) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5705) 
at android.widget.FrameLayout.onMeasure(FrameLayout.java:465) 
at android.view.View.measure(View.java:17915) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5705) 
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1692) 
at android.widget.LinearLayout.measureVertical(LinearLayout.java:760) 
at android.widget.LinearLayout.onMeasure(LinearLayout.java:629) 
at android.view.View.measure(View.java:17915) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5705) 
at android.widget.FrameLayout.onMeasure(FrameLayout.java:465) 
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2728) 
at android.view.View.measure(View.java:17915) 
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2412) 
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1414) 
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1638) 
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1292) 
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6598) 
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:800) 
at android.view.Choreographer.doCallbacks(Choreographer.java:603) 
at android.view.Choreographer.doFrame(Choreographer.java:572) 
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786) 
at android.os.Handler.handleCallback(Handler.java:815) 
at android.os.Handler.dispatchMessage(Handler.java:104) 
at android.os.Looper.loop(Looper.java:194) 
at android.app.ActivityThread.main(ActivityThread.java:5631) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 

Дайте мне лучшее решение?

Мой код строки:

 public class ViewpagesAdapter extends PagerAdapter { 

// Declare variables 
private Activity activity; 
private ArrayList<String> filepath; 
private LayoutInflater inflater=null; 
public ImageLoader imageLoader; 
DisplayImageOptions options; 


public ViewpagesAdapter(Activity a, ArrayList<String> fpath) { 
    activity = a; 
    filepath = fpath; 
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    File cacheDir = StorageUtils.getOwnCacheDirectory(a, "MyFolderCache"); 
    options = new DisplayImageOptions.Builder() 
      .showImageOnLoading(R.drawable.image_thumbnail) 
      .showImageForEmptyUri(R.drawable.image_thumbnail) 
      .showImageOnFail(R.drawable.image_thumbnail) 
      .cacheInMemory(true) 
      .cacheOnDisk(true) 
      .considerExifParams(true) 
      .bitmapConfig(Bitmap.Config.RGB_565) 
      .build(); 
} 

@Override 
public int getCount() { 
    return filepath.size(); 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    container.removeView((View) object); 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    return view == object; 
} 

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    View itemView; 
    itemView=inflater.inflate(R.layout.pagesview, container, false); 
    PhotoView image = (PhotoView)itemView.findViewById(R.id.image_pages); 
    ImageLoader.getInstance().displayImage(filepath.get(position),image, options, new SimpleImageLoadingListener() { 
     @Override 
     public void onLoadingStarted(String imageUri, View view) { 

     } 

     @Override 
     public void onLoadingFailed(String imageUri, View view, FailReason failReason) { 

     } 

     @Override 
     public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
     } 
    }, new ImageLoadingProgressListener() { 
     @Override 
     public void onProgressUpdate(String imageUri, View view, int current, int total) { 
     } 
    }); 

    container.addView(itemView); 
    return itemView; 
} 
+0

где вы инициализируете загрузчик изображений в адаптере? – KDeogharkar

+0

да @ Б.Надеш кумар. отправьте свой код – KDeogharkar

+0

, где вы указали, что вы упомянули? – KDeogharkar

ответ

3

Из журнала кажется, что вы не инициализировать загрузчик изображений, поэтому добавьте следующую строку
imageLoader = imageLoader.init (ImageLoaderConfiguration.createDefault (getBaseContext()));

+0

он уже добавляет, что nikk. внимательно прочитайте вопрос. – KDeogharkar

+0

Спасибо друзьям ... я не называю эту строку своим файлом класса, поэтому эта проблема .. –

2

Первый Добавьте эти две строки в Import,

import com.nostra13.universalimageloader.core.ImageLoader; 
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; 

затем добавить эти две строки ниже после этого

линии. inflater = (LayoutInflater) activity.getSystemService (Context.LAYOUT_INFLATER_SERVICE);

imageloader = ImageLoader.getInstance(); 
imageloader.init(ImageLoaderConfiguration.createDefault(context)); 

затем добавлять изображения, как это в GetView(),

imageloader.displayImage(Image Path, ImageView); 

Надежда Это поможет.

+1

Devraj Спасибо за этот отличный ответ !!! он работал со мной .... :-) :-) :-) –

+1

@bhumikarijiya Рад узнать .. :) – Devraj

+1

Devraj действительно решает мою большую проблему, связанную с этой темой ....: -): -): -) :-) –