Android使用Photoview实现图片左右滑动及缩放功能

  

我想,不管是做什么样的应用。一般都会涉及到图片点击方法,和左右滑动的功能吧。今天我就把自己的实现拿来分享一下。图片的加载用到了毕加索的图片加载工具。
  

  

<强>第一步:注入依赖

        编译的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实现图片左右滑动及缩放功能