Androidアプリの「ピクらっち」をアップデートしました!
Android版「ピクらっち」と「ピクらっち Free」をアップデートしました。
今回のアップデート内容は、Android2.2のみで出ていた以下の不具合修正です。
- 線を描いてもすぐに切れる
原因は(開発者向けの情報ではありますが、)Android2.2から以下のイベント絡みの内部実装の変更があったためだと考えられます。
- ScrollView内にViewを置いた場合、タッチイベントはすぐにキャンセルされる
※「MotionEvent.ACTION_CANCEL」がすぐに渡されます。
この変更により、線を描いているはずがすぐに切れてしまい、話にならない状態になっていました(苦)
しかし、Android2.1までは期待通りに動いていたので、2.2から急に変わったものと思われます。
回避方法は、以下の通りです。
- ScrollViewが継承しているViewGroupのrequestDisallowInterceptTouchEvent(boolean)メソッドをMotionEvent.ACTION_DOWNイベントの度に呼び、タッチイベントを奪わない様に指定する
何とも面倒な話ですが、1度だけ指定した場合、MotionEvent.ACTION_UP、またはMotionEvent.ACTION_CANCELの後に値がクリアされてしまうので、動いた!と思っても次は元通りになるので注意が必要です。
なお、上記内容はエミュレータを2.2に設定すれば再現できるかと思います。
他にもAndroidのバージョンアップによって動作が変わったものもありますので、暇をみてまとめようと思います。
Core Java API部分でも1.xと2.xでは動作が違う部分もありました(苦)
追記 : Android 1.xと2.2の互換性について
0
07
10月