Android java.lang.IllegalArgumentException: pointerIndex out of range,androidsystem.out
轉載請註明: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 range11-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!// ┃ ┗━━━┓// ┃ ┣┓// ┃ ┏┛// ┗┓┓┏━┳┓┏┛// ┃┫┫ ┃┫┫// ┗┻┛ ┗┻┛
每日精進