图片预览-PhotoView+ViewPager

首先说一下需求吧,,网络加载的图片用GridView显示,点击图片放大预览,同时还要显示图片的标题。很简单的需求,我整了快一天。。。想哭!!    以前真的没接触过这个功能。以至于我花了好一天的时间研究,也是找了很多方法,看了好多大牛写的Demo。但还是没整明白怎么实现,方法太多,还杂。尝试着用Kotlin写,但是以失败告终。找的方法多了,看的也多了的时候,自己就能找到些许思路。

OK,回到正题。  ImageLoader也能实现,看官方的Demo是可以的,但为什么不选择呢,有点复杂(懒)。。咳咳,后来又是一次大搜索,找到了PhotoView,,而且用法据说很简单。跟ImageView一样简单。

这就是用法,这就结束了,简单的让我无言以对,,GitHub地址———— PhotoView 

找了很多解释,没有多余的废话。。

缕清思路

1、先写主布局,用来显示你的图片(ListView   GridView都行,,不嫌累写一排ImageView都行,,哈哈)

2、主布局的适配器。不多说

3、写另一个Activity,用来显示浏览图片,这页要有一个ViewPager。实现左右滑动,ViewPager的布局就是PhotoView

4、在MainActivity的适配器中从Bean中遍历出图片地址,通过Intent的方式传值过去。在SecondActivity的PagerAdapter中通过ImageLoader加载。

大致就这样,可能有点乱。先将就下吧,后续给源码。。

局部代码

  viewHolder.photo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(context, PhotoViewActivity.class);
                intent.putStringArrayListExtra("imageList", imageList);
                intent.putStringArrayListExtra("imageName", imageName);
                intent.putExtra("index", i);
                context.startActivity(intent);
            }
        });
 LinearLayout view = (LinearLayout) LayoutInflater.from(mContext).inflate(R.layout.img_browse, null);
        PhotoView img = (PhotoView) view.findViewById(R.id.img_plan);
        TextView imgName = view.findViewById(R.id.imgName);

        img.setTag(imgUrl);
        imgName.setTag(nameInit);

        ImageLoaderUtil.getInstance().displayListItemImage(imgs.get(position), img);
        imgName.setText(nameInit);

看到PhotoView没,,跟ImageView一样的用法这个要写在PagerAdapter的  

  @Override
  public Object instantiateItem(ViewGroup container, int position) {

}

这个方法里

基本逻辑都在这里面,显示也是在这里。   之后会整理下代码,到时候在把代码贴出来。

自己的一个小小笔记,如能帮到你,实在是荣幸,不明白的可以一起讨论研究,共同进步。

 

你可能感兴趣的:(积累,问题总结)