图片预览-PhotoView+ViewPager

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

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

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

<com.github.chrisbanes.photoview.PhotoView
    android:id="@+id/photo_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

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

缕清思路

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) {

}

这个方法里

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值