最近,做项目时,遇到一个需求,需要像淘宝评论那样,一组图点开,然后可以双指滑动放大,并左右切换换图的功能。自然就想到了使用viewpager+photoview来实现这一功能,但是在实现后,却发现一个bug,就是在使用双手放大图片时,会抛异常,抛的异常是如下:
E/AndroidRuntime(22447): java.lang.IllegalArgumentException: pointerIndex out of range
E/AndroidRuntime(22447): at android.view.MotionEvent.nativeGetAxisValue(Native Method)
我查了很多的资料,发现问题所在是,photoview和viewpager组合使用时,可能会出现这一错误,这一错误的原因是我们可以分析出即:手指触控点越界了,这应该是和photoview放大图片的原因,那么解决方法很简单,我们只需要判断当前是几个手指,如果超过一个手指,viewpager事件不处理即可。
其具体解决办法就是重写viewpager,具体见下:
/**
* @author:程龙 date; On 2018/8/20
*/
public class MTouchViewPagerTest extends ViewPager {
public MTouchViewPager(Context context) {
super(context);
}
public MTouchViewPager(Context contex