Android 使用ViewPager实现图片左右滑动和PhotoView浏览大图
来源:互联网 发布:淘宝按销量排名规则 编辑:程序博客网 时间:2024/05/21 06:28
1.PhotoView的介绍:
PhotoView的github地址:
https://github.com/chrisbanes/PhotoView
PhotoView特性:
支持单点/多点触摸,即时缩放图片; 支持平滑滚动; 在滑动父控件下能够运行良好;(例如:ViewPager) 当用户的触点改变时可以触发通知。
PhotoView的详解,请参考PhotoView源码剖析
2.上Demo源码:
ViewPager的布局:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <include layout="@layout/toolbar_title" android:id="@+id/toolbar_title"/> <com.dgaotech.dgfw.widget.ImageViewPager android:id="@+id/img_viewpager" android:layout_below="@+id/toolbar_title" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/black"/> <TextView android:id="@+id/text_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="@dimen/public_margin20dp" android:textSize="@dimen/public_textsize20sp" android:textColor="@color/white" android:text="1/3" android:visibility="visible"/></RelativeLayout>
adapter的布局:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <uk.co.senab.photoview.PhotoView android:id="@+id/photoview" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>
主要核心代码:
List<View> listViews = new ArrayList<View>(); for (int i = 0; i < data.size(); i++) { View view = LayoutInflater.from(getApplicationContext()).inflate( R.layout.adapter_viewpager, null); final PhotoView photoview = (PhotoView) view.findViewById(R.id.photoview); photoview.setAdjustViewBounds(true); photoview.setScaleType(ImageView.ScaleType.FIT_CENTER); String url = data.get(i).getImg_url(); Glide.with(this) .load(url) .skipMemoryCache(true)//不缓存到内存 .priority(Priority.HIGH) .diskCacheStrategy(DiskCacheStrategy.SOURCE) .placeholder(R.drawable.gugong_details) .error(R.drawable.gugong_details) .into(photoview); listViews.add(view); PhotoPagerAdapter photoPagerAdapter = new PhotoPagerAdapter(listViews); img_viewpager.setAdapter(photoPagerAdapter); //通过viewPager.setCurrentItem来定义当前显示哪一个图片,position由上一个页面传过来 img_viewpager.setCurrentItem(position); photoPagerAdapter.notifyDataSetChanged();
PhotoPagerAdapter的代码:
public class PhotoPagerAdapter extends PagerAdapter { private List<View> list; public PhotoPagerAdapter(List<View> list) { this.list = list; } @Override public int getCount() { if (list != null && list.size() > 0) { return list.size(); } else { return 0; } } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(list.get(position)); return list.get(position); } @Override public int getItemPosition(Object object) { return POSITION_NONE; }}
以上就是ViewPager点击图片浏览大图且可以左右滑动的实现过程,有什么疑问的可以发邮件问我2573178020@qq.com
阅读全文
0 0
- Android 使用ViewPager实现图片左右滑动和PhotoView浏览大图
- 使用ViewPager和Photoview实现图片左右滑动和放大缩小
- 使用Android ViewPager与PhotoView实现图片滑动查看
- 使用Photoview实现图片左右滑动及缩放功能
- Android 使用ViewPager结合PhotoView开源组件实现网络图片在线浏览功能
- Android使用ViewPager、PhotoView实现类似QQ空间图片浏览功能
- viewPager+photoView实现图片轮播和手势缩放功能 支持手势缩放的imageView 如何实现相册左右滑动和手势缩放 如何让图片自适应控件大小 photoView如何使用(上)
- Android 使用ViewPager实现左右循环滑动图片
- Android 使用ViewPager实现左右循环滑动图片
- Android 使用ViewPager实现左右循环滑动图片
- Android 使用ViewPager实现左右循环滑动图片
- Android 使用ViewPager实现左右循环滑动图片
- Android 使用ViewPager实现左右循环滑动图片
- Android 使用ViewPager实现左右循环滑动图片
- Android 使用ViewPager实现左右循环滑动图片
- Android:使用ViewPager实现左右滑动切换图片 (简单版)
- Android:使用ViewPager实现左右滑动切换图片 (简单版)
- Android 使用ViewPager实现左右循环滑动图片
- GDUFE ACM-1072修理牛棚(贪心)
- Android使用Glide加载Gif
- 负载均衡的几种方式
- 导师训练之
- linux ldap搭建
- Android 使用ViewPager实现图片左右滑动和PhotoView浏览大图
- kubelet启动容器之存储挂载(三)
- intellij idea 出现“Usage of API documented as @since 1.8+”的解决办法
- C++的沉迷与爱恋
- 产品经理不再纸上谈兵——产品如何让用户互动起来
- JDK内置工具
- 详解 MNIST 数据集
- 阿里最新热修复框架Sophix集成详解
- Git使用手册:git diff 、 git add 、 git diff --cached 命令详解