您的位置:首页 > 其它

PhotoView实现放大缩小功能

2017-07-27 20:30 155 查看
 compile 'com.github.chrisbanes.photoview:library:1.2.4'

布局文件:在mainactivity中

<com.bway.photoview.HakViewPager

        Android:id="@+id/viewpager"

        android:layout_width="match_parent"

        android:layout_height="match_parent" />

为了避免冲突需要重写viewpager中的方法

public class HakViewPager extends ViewPager {

    public HakViewPager(Context context) {

        super(context);

    }

    public HakViewPager(Context context, AttributeSet attrs) {

        super(context, attrs);

    }

    @Override

    public boolean onInterceptTouchEvent(MotionEvent ev) {

        try {

            return super.onInterceptTouchEvent(ev);

        } catch (IllegalArgumentException e) {

            return false;

        }

    }

}

在mainactivity中引用

public class MainActivity extends AppCompatActivity {

    private HakViewPager hvpPhoto;

    private List<String> images;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        hvpPhoto = (HakViewPager) findViewById(R.id.viewpager);

        images = new ArrayList<>();

        images.add("http://pic.58pic.com/58pic/14/27/45/71r58PICmDM_1024.jpg 

");

        images.add("http://pic17.nipic.com/20111122/6759425_152002413138_2.jpg 

");

        images.add("http://pic10.nipic.com/20100929/4308872_150108084472_2.jpg 

");

        hvpPhoto.setAdapter(new PagerAdapter() {

            @Override

            public Object instantiateItem(ViewGroup Container, int position) {

                PhotoView photoView = new PhotoView(container.getContext());

                Glide.with(container.getContext()).load(images.get(position))

                        .into(photoView);

                container.addView(photoView);

                return photoView;

            }

            @Override

            public void destroyItem(ViewGroup container, int position, Object object) {

                container.removeView((View) object);

            }

            @Override

            public int getCount() {

                return images.size();

            }

            @Override

            public boolean isViewFromObject(View view, Object object) {

                return view == object;

            }

        });

    }

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: