Android的 - ImageLoader的必须配置使用UIL前初始化 [英] Android - ImageLoader must be init with configuration before using in UIL

查看:1538
本文介绍了Android的 - ImageLoader的必须配置使用UIL前初始化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到了错误ImageLoader的必须配置使用从非法状态异常的错误之前初始化。我努力在我的推杆在GridView内的碎片的方式显示图像。至于我的理解 ImageLoader的应首先通过扩展类AbsListViewBaseActivity将被延长 BaseActivity 初始化。这两个类是用来初始化 ImageLoader的。我pretty的搞砸了随大流,我得到的运行时错误,并一直与这两天。我会包括logcat的错误。

我自己的版本。

- 主要类

 进口com.nostra13.universalimageloader.core.ImageLoader;
进口com.folder.folder.AbsListViewBaseActivity;

公共类CollectionDemoActivity扩展FragmentActivity {
assignImageLoader newAssign;
静态AbsListViewBaseActivity absList;
静态ImageAdapter立方米;

   在OnCreate()
   {
   newAssign = assignImageLoader;
   立方米= ImageAdapter();
  ((GridView控件)absList.listView).setAdapter(M3);

   }
}


/ **
 *一个虚拟片段重新presenting应用程序的一部分,但只是显示虚拟文本。
 * /

公共静态类DemoObjectFragment扩展片段{



    公共静态最后弦乐ARG_OBJECT =对象;


    @覆盖
    公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
            捆绑savedInstanceState){
        查看rootView = inflater.inflate(R.layout.ac_image_grid,集装箱,假);

        名单<菜单> itemsDatabase = db.getItemsAsArray(项目);
        名单<字符串>项目=新的ArrayList<字符串>();

        对于(菜单CN:itemsDatabase){

            HashMap的<字符串,字符串>图=新的HashMap<字符串,字符串>();
            items.add(cn.getImagePath()的toString());
            values​​2.add(图)
        }

        imageUrls = items.toArray(新的String [items.size());

        选项​​2 =新DisplayImageOptions.Builder()
        .showStubImage(R.drawable.ic_stub)
        .showImageForEmptyUri(R.drawable.ic_empty)
        .showImageOnFail(R.drawable.ic_error)
        .cacheInMemory(真)
        .cacheOnDisc(真)
        .bitmapConfig(Bitmap.Config.RGB_565)
        。建立();

    absList.listView =(GridView控件)rootView.findViewById(R.id.gridview);

    ((GridView控件)absList.listView).setAdapter(M3);
    absList.listView.setOnItemClickListener(新OnItemClickListener(){
        @覆盖
        公共无效onItemClick(适配器视图<>母公司视图中查看,INT位置,长的id){
            // startImagePagerActivity(位置);
            //Toast.makeText(getBaseContext(),Clieckeed,Toast.LENGTH_SHORT).show();
            //Log.d("Inside的onClick:,view.toString());
        }
    });

        返回rootView;
    }
}

类ImageAdapter扩展了BaseAdapter {
    @覆盖
    公众诠释getCount将(){
        返回imageUrls.length;
    }

    @覆盖
    公共对象的getItem(INT位置){
        返回null;
    }

    @覆盖
    众长getItemId(INT位置){
        返回的位置;
    }

     公共查看getView(最终诠释的立场,观点convertView,ViewGroup中父){
            查看查看= convertView;
            最后ViewHolder持有人;

            //赋值
            holder.name.setText(values​​2.get(位置)获得(TAG_NAME2)的ToString());
            holder.price.setText(价格+ values​​2.get(位置)获得(TAG_PRICE2)的ToString());

            holder.br.setStepSize(1);
            holder.br.setFocusable(假);

            Log.d(在GridViewdd图像路径值:values​​2.get(位置)获得(TAG_IMAGE_NAME2)的ToString());

            newAssign.getImageLoader(映像路径,holder.image,选项2);

            返回查看;
        }


     类ViewHolder {
            公共TextView的名称;
            公共TextView的价格;
            公众ImageView的形象;
            公众的RatingBar BR;
          }
}

静态类assignImageLoader扩展AbsListViewBaseActivity {
    静态ImageLoader的毫克;

    assignImageLoader()
    {
        毫克= ImageLoader的;
    }

    公共无效getImageLoader(字符串路径,ImageView的IMG,DisplayImageOptions选项)
    {
        imageLoader.displayImage(路径,IMG,期权);
    }

}
 

原件实施方案和流程

- 主要类

 公共类ImageGridActivity扩展AbsListViewBaseActivity {

    的onCreate()
    {
     ((GridView控件)的ListView).setAdapter(新ImageAdapter());
    }

    公共类ImageAdapter扩展了BaseAdapter {
        公共查看getView(最终诠释的立场,观点convertView,ViewGroup中父){
        imageLoader.displayImage(路径,holder.image,选项2);

        }
        }

}
 

- AbsListViewBaseActivity

 公共类AbsListViewBaseActivity扩展BaseActivity {

    受保护的静态最后弦乐STATE_PAUSE_ON_SCROLL =STATE_PAUSE_ON_SCROLL;
    受保护的静态最后弦乐STATE_PAUSE_ON_FLING =STATE_PAUSE_ON_FLING;

    公共AbsListView的ListView;



    保护布尔pauseOnScroll = FALSE;
    保护布尔pauseOnFling = TRUE;

    @覆盖
    公共无效onRestoreInstanceState(包savedInstanceState){
        pauseOnScroll = savedInstanceState.getBoolean(STATE_PAUSE_ON_SCROLL,假);
        pauseOnFling = savedInstanceState.getBoolean(STATE_PAUSE_ON_FLING,真正的);
    }

    @覆盖
    公共无效onResume(){
        super.onResume();
        applyScrollListener();
    }

    私人无效applyScrollListener(){
        listView.setOnScrollListener(新PauseOnScrollListener(ImageLoader的,pauseOnScroll,pauseOnFling));

    }

    @覆盖
    公共无效的onSaveInstanceState(包outState){
        outState.putBoolean(STATE_PAUSE_ON_SCROLL,pauseOnScroll);
        outState.putBoolean(STATE_PAUSE_ON_FLING,pauseOnFling);
    }

    @覆盖
    公共布尔prepareOptionsMenu(功能菜单)在{
        菜单项pauseOnScrollItem = menu.findItem(R.id.item_pause_on_scroll);
        pauseOnScrollItem.setVisible(真正的);
        pauseOnScrollItem.setChecked(pauseOnScroll);

        菜单项pauseOnFlingItem = menu.findItem(R.id.item_pause_on_fling);
        pauseOnFlingItem.setVisible(真正的);
        pauseOnFlingItem.setChecked(pauseOnFling);
        返回true;
    }

    @覆盖
    公共布尔onOptionsItemSelected(菜单项项){
        开关(item.getItemId()){
            案例R.id.item_pause_on_scroll:
                !pauseOnScroll = pauseOnScroll;
                item.setChecked(pauseOnScroll);
                applyScrollListener();
                返回true;
            案例R.id.item_pause_on_fling:
                !pauseOnFling = pauseOnFling;
                item.setChecked(pauseOnFling);
                applyScrollListener();
                返回true;
            默认:
                返回super.onOptionsItemSelected(项目);
        }
    }
}
 

BaseActivity

 公共抽象类BaseActivity延伸活动{



    公共ImageLoader的ImageLoader的= ImageLoader.getInstance();



    @覆盖
    公共布尔onCreateOptionsMenu(功能菜单){
        。getMenuInflater()膨胀(R.menu.main_menu,菜单);
                //添加在code由我来处理初始化错误
        imageLoader.init(ImageLoaderConfiguration.createDefault(getBaseContext()));

        返回true;
    }

    @覆盖
    公共布尔onOptionsItemSelected(菜单项项){

        开关(item.getItemId()){
            案例R.id.item_clear_memory_cache:
                imageLoader.clearMemoryCache();
                返回true;
            案例R.id.item_clear_disc_cache:
                imageLoader.clearDiscCache();
                返回true;
            默认:
                imageLoader.destroy();
                返回false;
        }


    }
}
 

logcat的:

 十一月七号日至19日:28:26.909:E / AndroidRuntime(24023):致命异常:主要
11月7日至19号:28:26.909:E / AndroidRuntime(24023):java.lang.IllegalStateException:ImageLoader的必须配置使用之前进行初始化
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在com.nostra13.universalimageloader.core.ImageLoader.checkConfiguration(ImageLoader.java:325)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:170)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:134)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在com.jinisys.restoplusordering.CollectionDemoActivity$assignImageLoader.getImageLoader(CollectionDemoActivity.java:448)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在com.jinisys.restoplusordering.CollectionDemoActivity$ImageAdapter.getView(CollectionDemoActivity.java:424)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.widget.AbsListView.obtainView(AbsListView.java:2267)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.widget.GridView.onMeasure(GridView.java:1030)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.View.measure(View.java:15181)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.View.measure(View.java:15181)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1447)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.View.measure(View.java:15181)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.View.measure(View.java:15181)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.widget.LinearLayout.measureVertical(LinearLayout.java:833)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.View.measure(View.java:15181)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2148)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1848)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1100)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1273)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:4212)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:725)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.Choreographer.doCallbacks(Choreographer.java:555)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.Choreographer.doFrame(Choreographer.java:525)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:711)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.os.Handler.handleCallback(Handler.java:615)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.os.Handler.dispatchMessage(Handler.java:92)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.os.Looper.loop(Looper.java:137)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在android.app.ActivityThread.main(ActivityThread.java:4745)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在java.lang.reflect.Method.invokeNative(本机方法)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在java.lang.reflect.Method.invoke(Method.java:511)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11月7日至19号:28:26.909:E / AndroidRuntime(24023):在dalvik.system.NativeStart.main(本机方法)
 

从这种方法立足:

<一个href="https://github.com/nostra13/Android-Universal-Image-Loader/blob/master/sample/src/com/nostra13/example/universalimageloader/ImageGalleryActivity.java">ImageGallery

解决方案

请尽量把onCreateView内实现这一点:

<$p$p><$c$c>BaseActivity.imageLoader.init(ImageLoaderConfiguration.createDefault(getBaseCont‌​ext()));

I got the error "ImageLoader must be init with configuration before using is the error from Illegal State Exception". I am struggling to display the images in my approach of putting the gridview inside a fragments. As for my understanding the imageLoader should be initialized first by extending the class AbsListViewBaseActivity which will be extending BaseActivity. This two classes are used to initialize the imageLoader. I pretty messed up with the flow and I am getting errors in runtime and been working with this in two days. I'll include logcat errors.

My own version.

--Main CLass

import com.nostra13.universalimageloader.core.ImageLoader;
import com.folder.folder.AbsListViewBaseActivity;

public class CollectionDemoActivity extends FragmentActivity{
assignImageLoader newAssign;
static AbsListViewBaseActivity absList;
static ImageAdapter m3;

   Oncreate()
   {
   newAssign = assignImageLoader;
   m3 = ImageAdapter();
  ((GridView) absList.listView).setAdapter(m3);

   }
}


/**
 * A dummy fragment representing a section of the app, but that simply displays dummy text.
 */

public static class DemoObjectFragment extends Fragment {



    public static final String ARG_OBJECT = "object";


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.ac_image_grid, container, false);

        List<Menu> itemsDatabase = db.getItemsAsArray("items");
        List<String> items = new ArrayList<String>();

        for (Menu cn : itemsDatabase) {

            HashMap<String, String> map = new HashMap<String, String>();
            items.add(cn.getImagePath().toString());
            values2.add(map);
        }

        imageUrls = items.toArray(new String[items.size()]);

        options2 = new DisplayImageOptions.Builder()
        .showStubImage(R.drawable.ic_stub)
        .showImageForEmptyUri(R.drawable.ic_empty)
        .showImageOnFail(R.drawable.ic_error)
        .cacheInMemory(true)
        .cacheOnDisc(true)
        .bitmapConfig(Bitmap.Config.RGB_565)
        .build();

    absList.listView = (GridView)rootView.findViewById(R.id.gridview);

    ((GridView) absList.listView).setAdapter(m3);
    absList.listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            //startImagePagerActivity(position);
            //Toast.makeText(getBaseContext(), "Clieckeed",Toast.LENGTH_SHORT).show();
            //Log.d("Inside Onclick:", view.toString());
        }
    });

        return rootView;
    }
}

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

     public View getView(final int position, View convertView, ViewGroup parent) {
            View view = convertView;
            final ViewHolder holder;

            //Assign Values
            holder.name.setText(values2.get(position).get(TAG_NAME2  ).toString());
            holder.price.setText("Price: "+values2.get(position).get(TAG_PRICE2  ).toString());

            holder.br.setStepSize(1);
            holder.br.setFocusable(false);

            Log.d("Image Path Value in GridViewdd: ", values2.get(position).get(TAG_IMAGE_NAME2 ).toString());

            newAssign.getImageLoader("Image Path", holder.image, options2);

            return view;
        }


     class ViewHolder {
            public TextView name;
            public TextView price;
            public ImageView image;
            public RatingBar br;
          }
}

static class assignImageLoader extends AbsListViewBaseActivity{
    static ImageLoader mg;

    assignImageLoader()
    {
        mg = imageLoader;
    }

    public void getImageLoader(String path, ImageView img, DisplayImageOptions options)
    {
        imageLoader.displayImage(path, img, options);
    }

}

Original Implementation and flow of the program

--Main Class

public class ImageGridActivity extends AbsListViewBaseActivity {

    onCreate()
    {
     ((GridView) listView).setAdapter(new ImageAdapter());
    }

    public class ImageAdapter extends BaseAdapter {
        public View getView(final int position, View convertView, ViewGroup parent) {
        imageLoader.displayImage(path, holder.image, options2);

        }
        }

}

--AbsListViewBaseActivity

public class AbsListViewBaseActivity extends BaseActivity {

    protected static final String STATE_PAUSE_ON_SCROLL = "STATE_PAUSE_ON_SCROLL";
    protected static final String STATE_PAUSE_ON_FLING = "STATE_PAUSE_ON_FLING";

    public AbsListView listView;



    protected boolean pauseOnScroll = false;
    protected boolean pauseOnFling = true;

    @Override
    public void onRestoreInstanceState(Bundle savedInstanceState) {
        pauseOnScroll = savedInstanceState.getBoolean(STATE_PAUSE_ON_SCROLL, false);
        pauseOnFling = savedInstanceState.getBoolean(STATE_PAUSE_ON_FLING, true);
    }

    @Override
    public void onResume() {
        super.onResume();
        applyScrollListener();
    }

    private void applyScrollListener() {
        listView.setOnScrollListener(new PauseOnScrollListener(imageLoader, pauseOnScroll, pauseOnFling));

    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        outState.putBoolean(STATE_PAUSE_ON_SCROLL, pauseOnScroll);
        outState.putBoolean(STATE_PAUSE_ON_FLING, pauseOnFling);
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        MenuItem pauseOnScrollItem = menu.findItem(R.id.item_pause_on_scroll);
        pauseOnScrollItem.setVisible(true);
        pauseOnScrollItem.setChecked(pauseOnScroll);

        MenuItem pauseOnFlingItem = menu.findItem(R.id.item_pause_on_fling);
        pauseOnFlingItem.setVisible(true);
        pauseOnFlingItem.setChecked(pauseOnFling);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item_pause_on_scroll:
                pauseOnScroll = !pauseOnScroll;
                item.setChecked(pauseOnScroll);
                applyScrollListener();
                return true;
            case R.id.item_pause_on_fling:
                pauseOnFling = !pauseOnFling;
                item.setChecked(pauseOnFling);
                applyScrollListener();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
}

BaseActivity

public abstract class BaseActivity extends Activity {



    public ImageLoader imageLoader = ImageLoader.getInstance();



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_menu, menu);
                //Added in the code by me for handling the init error
        imageLoader.init(ImageLoaderConfiguration.createDefault(getBaseContext()));

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
            case R.id.item_clear_memory_cache:
                imageLoader.clearMemoryCache();
                return true;
            case R.id.item_clear_disc_cache:
                imageLoader.clearDiscCache();
                return true;
            default:
                imageLoader.destroy();
                return false;
        }


    }
}

Logcat:

07-19 11:28:26.909: E/AndroidRuntime(24023): FATAL EXCEPTION: main
07-19 11:28:26.909: E/AndroidRuntime(24023): java.lang.IllegalStateException: ImageLoader must be init with configuration before using
07-19 11:28:26.909: E/AndroidRuntime(24023):    at com.nostra13.universalimageloader.core.ImageLoader.checkConfiguration(ImageLoader.java:325)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:170)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:134)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at com.jinisys.restoplusordering.CollectionDemoActivity$assignImageLoader.getImageLoader(CollectionDemoActivity.java:448)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at com.jinisys.restoplusordering.CollectionDemoActivity$ImageAdapter.getView(CollectionDemoActivity.java:424)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.widget.AbsListView.obtainView(AbsListView.java:2267)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.widget.GridView.onMeasure(GridView.java:1030)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.View.measure(View.java:15181)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.View.measure(View.java:15181)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1447)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.View.measure(View.java:15181)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.View.measure(View.java:15181)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.widget.LinearLayout.measureVertical(LinearLayout.java:833)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.View.measure(View.java:15181)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1848)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1100)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1273)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.Choreographer.doCallbacks(Choreographer.java:555)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.Choreographer.doFrame(Choreographer.java:525)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.os.Handler.handleCallback(Handler.java:615)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.os.Looper.loop(Looper.java:137)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at android.app.ActivityThread.main(ActivityThread.java:4745)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at java.lang.reflect.Method.invokeNative(Native Method)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at java.lang.reflect.Method.invoke(Method.java:511)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-19 11:28:26.909: E/AndroidRuntime(24023):    at dalvik.system.NativeStart.main(Native Method)

Basing from this Approach:

ImageGallery

解决方案

Try to implement this inside your onCreateView:

BaseActivity.imageLoader.init(ImageLoaderConfiguration.createDefault(getBaseCont‌​ext()));

这篇关于Android的 - ImageLoader的必须配置使用UIL前初始化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆