我想,不管是做什么样的应用。一般都会涉及到图片点击方法,和左右滑动的功能吧。今天我就把自己的实现拿来分享一下。图片的加载用到了毕加索的图片加载工具。
<强>第一步:强>注入依赖
编译的com.squareup.picasso:毕加索:2.5.2“ 编译的1.3.0 com.github.chrisbanes: PhotoView:版本
<强>第二步,强>我们就来实现这个功能。多张图片左右滑动,这需要用到:viewpage这个类。
且看布局:
& lt; uk.co.senab.photoview.sample.HackyViewPager xmlns: android=" http://schemas.android.com/apk/res/android " android: id=癅 + id/iv_photo” android: layout_width=" match_parent " android: layout_height=" match_parent "/比; >之前这里用到了自定义的:viewpage
公开课HackyViewPager延伸:viewpage { 公共HackyViewPager(上下文语境){ 超级(上下文); } 公共HackyViewPager(上下文语境,AttributeSet attrs) { 超级(上下文,attrs); } @Override 公共布尔> 包uk.co.senab.photoview.sample; 进口android.os.Bundle; 进口android.support.v4.view.PagerAdapter; 进口android.support.v4.view.ViewPager; 进口android.support.v7.app.AppCompatActivity; 进口android.util.Log; 进口android.view.View; 进口android.view.ViewGroup; 进口com.squareup.picasso.Callback; 进口com.squareup.picasso.Picasso; 进口uk.co.senab.photoview.PhotoView; 进口uk.co.senab.photoview.PhotoViewAttacher; 公开课PicassoSampleActivity延伸AppCompatActivity { :viewpage mViewPager;//字符串的位置; @Override 保护无效onCreate(包savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_simple); mViewPager=(HackyViewPager) findViewById (R.id.iv_photo); setContentView (mViewPager); mViewPager。setAdapter(新SamplePagerAdapter ());//位置=getIntent () .getStringExtra(“位置”);//设置默认的坐标,实际情况不要写死,只需点击哪张图片的位置,并传过来接受就可以了,就默认显示点击图片的大图。//mViewPager.setCurrentItem (Integer.parseInt(位置)); mViewPager.setCurrentItem (2); } 静态类SamplePagerAdapter延伸PagerAdapter {//这里暂时写死了,实际情况中要从服务端获取图片地址结合,传过来 私有静态最终String [] url={"/媒体/Bist9mvIYAAeAyQ.jpg”,“/专辑/whcrop % 3 d657 % 2 c370 % 3 bq % 3 d90/=2 c994e578a82b9013df895711cfd9441/09fa513d269759eede0805bbb2fb43166d22df62.jpg迹象”, “/d/文件/2013 - 11 - 14/13631d143b7076dc3257b1e516a2a9a2.jpg”、“7./f5/63/d/jpg”}; @Override 公共int getCount () { 返回url.length; } @Override 公众视线instantiateItem (ViewGroup容器,int位置){ PhotoView PhotoView=new PhotoView (container.getContext ()); 最后PhotoViewAttacher连接器=new PhotoViewAttacher (photoView); Picasso.with (container.getContext ()) .load (url(位置)) .into (photoView,新的回调(){ @Override 公共空间onSuccess () { attacher.update (); } @Override 公共空间onError () { } }); 容器。addView (photoView ViewGroup.LayoutParams。MATCH_PARENT ViewGroup.LayoutParams.MATCH_PARENT); 返回photoView; } @Override 公共空间destroyItem (ViewGroup容器,int位置、对象对象){ container.removeView((视图)对象); } @Override 公共布尔isViewFromObject(视图视图对象对象){ 返回查看==对象; } } } >之前有了这个工具我们很轻松就实现了图片点击放大,左右活动,缩放等功能。
Android使用Photoview实现图片左右滑动及缩放功能