bm-x / PhotoView

图片浏览缩放控件
2.63k stars 539 forks source link

viewpageractivity示例中,如果把图放大,然后view.disenable()锁定图片放大功能后viewpager的滑动只能在边缘滑动了。 #40

Open netcorner opened 8 years ago

netcorner commented 8 years ago

修改代码如: public class ViewPagerActivity extends Activity {

private ViewPager mPager;

private int[] imgsId = new int[]{R.mipmap.aaa, R.mipmap.bbb, R.mipmap.ccc, R.mipmap.ddd, R.mipmap.ic_launcher, R.mipmap.image003};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_pager);

    mPager = (ViewPager) findViewById(R.id.pager);
    mPager.setPageMargin((int) (getResources().getDisplayMetrics().density * 15));
    mPager.setAdapter(new PagerAdapter() {
        @Override
        public int getCount() {
            return imgsId.length;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == object;
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            final PhotoView view = new PhotoView(ViewPagerActivity.this);
            view.enable();

            //实现点击后琐定图片,先放大图片,然后再点击这张图片以后会锁定图处的放大功能,然后用viewpager滑动就会有问题
            view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    view.disenable();
                }
            });

            view.setScaleType(ImageView.ScaleType.FIT_CENTER);
            view.setImageResource(imgsId[position]);
            container.addView(view);
            return view;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }
    });
}

}