Android 平滑寻呼机

Android 平滑寻呼机,android,android-fragments,view,android-viewpager,Android,Android Fragments,View,Android Viewpager,我已经使用FragmentStatePagerAdapter实现了一个ViewPager,它运行良好。但是,页面更改转换看起来有点慢。它在移动到下一页时有点滞后 我在500*500的每一页上一次加载了大约5幅图片,这些图片是用毕加索下载的,所以我想这是在一个单独的线程上 除此之外,我的主线上没有繁重的工作,因此我无法总结任何问题 需要一些帮助,我可以如何使它更平滑和更快一点 我的片段: @Override public View onCreateView(LayoutInflater infla

我已经使用FragmentStatePagerAdapter实现了一个ViewPager,它运行良好。但是,页面更改转换看起来有点慢。它在移动到下一页时有点滞后

我在500*500的每一页上一次加载了大约5幅图片,这些图片是用毕加索下载的,所以我想这是在一个单独的线程上

除此之外,我的主线上没有繁重的工作,因此我无法总结任何问题

需要一些帮助,我可以如何使它更平滑和更快一点

我的片段:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    if (getArguments() != null) {

        isThumbLoaded = true;

        mType = getArguments().getInt(MyGirdCrushesActivity.CLICKED_WHAT,
                HomeActivity.TYPE_HOME);
    }

    rootView = inflater.inflate(R.layout.fragment_profile_view, container,
            false);

    return rootView;

}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onViewCreated(view, savedInstanceState);

    // on create
    mActivity = (HomeActivity) getActivity();

    ProgressBar progress = new ProgressBar(mActivity);

    // on create view
    main_relative = (View) rootView.findViewById(R.id.main_relative);

    newUsersProfile = (FacesModel) getArguments().getSerializable(
            NetworkController.MODEL_KEY);

    networkController = new NetworkController(getActivity());

    newImageLoader = new ImageLoader(getActivity(), true, false, false);

    img_profile_pic = (ImageView) rootView
            .findViewById(R.id.img_profile_pic);


    imageLoader = new ImageLoader(getActivity(), false, false, false);

    // if (NetworkController.isConnectingToInternet(getActivity())) {
    arraProfileImage = (List<ProfileImagesModel>) Arrays
            .asList(newUsersProfile.getLstProfileImages());

    img_profile_pic.setOnClickListener(ProfileViewsFragment.this);

    view_profile_details = (View) rootView
            .findViewById(R.id.view_profile_details);

    rela_profile_details = (LinearLayout) view_profile_details
            .findViewById(R.id.rela_profile_details);
    rela_profile_details.setOnClickListener(ProfileViewsFragment.this);

    layout_mutual_friends = (RelativeLayout) rootView
            .findViewById(R.id.layout_mutual_friends);

    layout_mutual_friends.setOnClickListener(ProfileViewsFragment.this);

    txt_profile_person_name = (TextView) view_profile_details
            .findViewById(R.id.txt_profile_person_name);
    txt_profile_person_age = (TextView) view_profile_details
            .findViewById(R.id.txt_profile_person_age);
    txt_profile_person_location = (TextView) view_profile_details
            .findViewById(R.id.txt_profile_person_location);

    txtMutualCount = (TextView) view_profile_details
            .findViewById(R.id.txtMutualCount);

    setUserData();

    gallery_profile_images = (LinearLayout) rootView
            .findViewById(R.id.gallery_profile_images);

    View cell;

    for (int i = 0; i < arraProfileImage.size(); i++) {
        pos = i;
        // System.out.println("Inside For loop");

        cell = getActivity().getLayoutInflater().inflate(
                R.layout.layout_list_item, null);

        final RoundedImageView imageThumbnail = (RoundedImageView) cell
                .findViewById(R.id.img_profile_gallery);

        imageThumbnail.setId(i);

        imgThumbnails.add(imageThumbnail);

        imageThumbnail.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                // Clears previous selection
                clearSelections();

                mSelectionUrl = arraProfileImage
                        .get(imageThumbnail.getId()).getImageUrl4();

                v.setSelected(true);

                img_profile_pic.setTag(arraProfileImage.get(
                        imageThumbnail.getId()).getImageUrl4());


                MyApp
                        .getPicasso()
                        .load(arraProfileImage.get(imageThumbnail.getId())
                                .getImageUrl4())
                        .placeholder(Commons.getDefaultImageSrc(mActivity))
                        .into(img_profile_pic);


            }
        });


                       MyApp.getPicasso()
                .load(arraProfileImage.get(i).getImageUrl4())
                .placeholder(Commons.getDefaultImageSrcTrans(mActivity))
                .into(imageThumbnail);



        imageThumbnail.setTag(arraProfileImage.get(i).getImageUrl4());

        if (arraProfileImage.get(i).isProfileImage()) {
            imageThumbnail.setSelected(true);
            mProfilePic = arraProfileImage.get(i).getImageUrl4();

            MyApp.getPicasso()
                    .load(arraProfileImage.get(i).getImageUrl4())
                    .placeholder(Commons.getDefaultImageSrc(mActivity))
                    .into(img_profile_pic);



        }


        img_profile_pic.setTag(arraProfileImage.get(i).getImageUrl4());



        gallery_profile_images.addView(cell);
    }


    }


}

请告诉我是否需要更多的代码。

您是否尝试过实现ViewHolder模式

本例显示了如何在ListView上实现该模式,但该概念也适用于ViewPager


不太确定视图持有者将如何实现,因为在适配器内部我只返回片段。如果你的意思是在片段的getView中,那么是的,我正在使用它
 @Override
 public Fragment getItem(int position) {

    if (type == HomeActivity.TYPE_HOME) {
        if (position > arrNewUsersProfiles.size() - 1) {
            BlankFaceFragment blank = new BlankFaceFragment();
            Bundle bundle = new Bundle();
            bundle.putInt(MyGirdCrushesActivity.CLICKED_WHAT, type);
            blank.setArguments(bundle);
            return blank;
        } else {
            ProfileViewsFragment fragment = new ProfileViewsFragment();
            // fragment.setmActivity(mActivity);
            Bundle args2 = new Bundle();
            System.out.println("RJ POSITION " + position);

            args2.putInt(MyGirdCrushesActivity.CLICKED_WHAT, type);
            args2.putSerializable(NetworkController.MODEL_KEY,
                    arrNewUsersProfiles.get(position));

            fragment.setArguments(args2);
            return fragment;
        }
    } 

    }

}