简体   繁体   中英

Universal image loader on Android Studio

I tried to run it on eclip and it works but on android studio, it fails. I can not find a solution to this problem. I want to load a photo from openFirst(), Error openFirst()

public class MidFragment extends Fragment {
//    private ProgressDialog mProgressDialog;
    private ImageView mImageView;
    private VideoView mVideoView;
    private View mView;
    private DisplayImageOptions mOptions;
    private ImageLoader mImageLoader;
    private Context mContext;
    private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener();
    private ArrayList<ParseObject> objectList = new ArrayList<>();
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        mView = inflater.inflate(R.layout.mid_fragment, container, false);
        initComponent();
        mContext = container.getContext();
        return mView;

    }

    private void initComponent() {
        mImageView = (ImageView)mView.findViewById(R.id.image);
        mVideoView = (VideoView)mView.findViewById(R.id.video);
        mImageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });
        mVideoView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });
//        mProgressDialog = new ProgressDialog(getActivity());
//        mProgressDialog.setTitle("Please wait a moment...");
//        mProgressDialog.setMessage("Loading...");
//        mProgressDialog.setIndeterminate(false);
    }

    public void reloadData(int index){
//        mProgressDialog.show();
        ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Data");
        query.whereEqualTo("school",(Number)index);
        query.findInBackground(new FindCallback<ParseObject>() {
            @Override
            public void done(List<ParseObject> list, ParseException e) {
                objectList = (ArrayList<ParseObject>) list;
//                mProgressDialog.dismiss();
                if (!list.isEmpty())
                    openFirst();
            }
        });
    }
    private void openFirst(){

        mImageLoader = ImageLoader.getInstance();
        mImageLoader.init(ImageLoaderConfiguration.createDefault(mContext));
        mOptions = new DisplayImageOptions.Builder()
                .cacheInMemory(true)
                .cacheOnDisk(true)
                .considerExifParams(true)
                .build();
            ParseObject parseObject = objectList.get(0);
            ParseFile parseFile = parseObject.getParseFile("file");
            Log.e("****************************",""+parseFile.getUrl());
        if (parseObject.getNumber("type") == (Number)1){
//            mVideoView.setVisibility(View.VISIBLE);
//            mImageView.setVisibility(View.GONE);

//            mVideoView.setVideoURI();
        }else{
            mVideoView.setVisibility(View.GONE);
            mImageView.setVisibility(View.VISIBLE);

            ImageLoader.getInstance().displayImage(parseFile.getUrl(), mImageView, mOptions, animateFirstListener);

        }
    }

    private static class AnimateFirstDisplayListener extends SimpleImageLoadingListener {

        static final List<String> displayedImages = Collections.synchronizedList(new LinkedList<String>());

        @Override
        public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
            if (loadedImage != null) {
                ImageView imageView = (ImageView) view;
                boolean firstDisplay = !displayedImages.contains(imageUri);
                if (firstDisplay) {
                    FadeInBitmapDisplayer.animate(imageView, 500);
                    displayedImages.add(imageUri);
                }
            }
        }
    }
}

Logcat

05-18 23:23:02.258  10496-10496/animuco.com.ckemi E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: animuco.com.ckemi, PID: 10496
    java.lang.NullPointerException
            at com.nostra13.universalimageloader.core.ImageLoaderConfiguration$Builder.<init>(ImageLoaderConfiguration.java:196)
            at com.nostra13.universalimageloader.core.ImageLoaderConfiguration.createDefault(ImageLoaderConfiguration.java:127)
            at animuco.com.ckemi.Fragment.MidFragment.openFirst(MidFragment.java:99)
            at animuco.com.ckemi.Fragment.MidFragment.access$200(MidFragment.java:42)
            at animuco.com.ckemi.Fragment.MidFragment$3.done(MidFragment.java:92)
            at animuco.com.ckemi.Fragment.MidFragment$3.done(MidFragment.java:86)
            at com.parse.Parse$6$1.run(Parse.java:944)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:212)
            at android.app.ActivityThread.main(ActivityThread.java:5135)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
            at dalvik.system.NativeStart.main(Native Method)

thanks for your help

Quite possibly mContext is null. Since this is fragment just remove mContext and use getActivity() instead.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM