android使用ViewPager来显示图像

时间:2013-05-20 03:45:36

标签: android android-fragments android-viewpager

我想从网上下载一堆图片,然后使用我的自定义PagerAdapter显示它们。所以我可以滑动浏览所有这些图像。

我定义了一个名为PhotoSlideActivity的活动,该活动从FragmentActivity延伸。在此活动中,我有自己的PagerAdapter。以下是我的代码:

    private class PhotoSlidePagerAdapter extends FragmentStatePagerAdapter {
        private final int mSize;

        public PhotoSlidePagerAdapter(FragmentManager fm, int size) {
            super(fm);
            mSize = size;
        }

        @Override
        public Fragment getItem(int position) {
            PhotoUrl photoUrl = new PhotoUrl(position);
            return PhotoSlidePageFragment.create(photoUrl.makePhotoUrl());
        }

        @Override
        public int getCount() {
            return mSize;
        }
    }

以下是我的PhotoSlidePageFragmentmImageFetcher是一个以异步方式下载图像的类。

   public class PhotoSlidePageFragment extends Fragment {

   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
       final View v = inflater.inflate(R.layout.fragment_photo_slide_page, container, false);
       mImageView = (ImageView) v.findViewById(R.id.imageView1);
   }

   @Override
   public void onActivityCreated(Bundle savedInstanceState) {
       super.onActivityCreated(savedInstanceState);

       // Use the parent activity to load the image asynchronously into the ImageView
       if (PhotoSlideActivity.class.isInstance(getActivity())) {
          mImageFetcher = ((PhotoSlideActivity) getActivity()).getImageFetcher();
          mImageFetcher.loadImage(mImageUrl, mImageView);
       }
   }

(1)我最初的想法是将mImageFetcher.loadImage(mImageUrl, mImageView);放入onCreateView。将其放入onCreateViewonActivityCreated

之间是否有任何区别?

(2)如果我用onActivityCreated替换mImageFetcher = new ImageFetcher(); mImageFetcher.loadImage(mImageUrl, mImageView);中的内容怎么办?这样做意味着使用Fragment异步加载图像。这样做有什么不好的影响吗?

1 个答案:

答案 0 :(得分:3)

使用可以使用LazyList从网站(URL)获取数据。 从Github下载以下示例

https://github.com/thest1/LazyList

和适配器数据用于滑动更改图像示例

https://github.com/chiuki/android-swipe-image-viewer