转载请注明:http://blog.csdn.net/aaawqqq
Android java.lang.IllegalArgumentException: pointerIndex out of range
bug:
11-27 00:12:55.029: E/AndroidRuntime(22447): java.lang.IllegalArgumentException: pointerIndex out of range 11-27 00:12:55.029: E/AndroidRuntime(22447): at android.view.MotionEvent.nativeGetAxisValue(Native Method)
原因
绘图的时候 多点触控 放大缩小 导致一场
我在viewpager 里面 通过手势绘制图片 放大缩小 造成了这个bug
我的 viewpager 解决方案:
1 继承 view
2 重写 dispatchTouchEvent
3 抓住异常
public class FixedViewPager extends ViewPager { public FixedViewPager(Context context) { super(context); } public FixedViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { try { return super .dispatchTouchEvent(ev); } catch (IllegalArgumentException ignored) { } catch (ArrayIndexOutOfBoundsException e) { } return false ; } }
网上有其它方法 如:
重写onInterceptTouchEvent 和onTouchEvent方法
try catch 该两个方法,形如下面:
try{ super.onInterceptTouchEvent(MotionEvent ev) } catch(ILLegalArgumentException ex) { } return false; try{ super.onTouchEvent(MotionEvent ev) } catch(ILLegalArgumentException ex) { } return false;
参考: http://nanjingjiangbiao-t.iteye.com/blog/1794478
//┏┓ ┏┓ //┏┛┻━━━┛┻┓ //┃ ┃ //┃ ━ ┃ //┃ ┳┛ ┗┳ ┃ //┃ ┃ //┃ ┻ ┃ //┃ ┃ //┗━┓ ┏━┛ // ┃ ┃ 神兽保佑 // ┃ ┃ 代码无BUG! // ┃ ┗━━━┓ // ┃ ┣┓ // ┃ ┏┛ // ┗┓┓┏━┳┓┏┛ // ┃┫┫ ┃┫┫ // ┗┻┛ ┗┻┛
每日精进