コンテキスト
ユーザーが前のビューを指で消去してコンテンツ (マップフラグメント) を表示できるアプリケーションを開発しています。
描画を処理する customView (google fingerpaint - 消去サンプルに似ています) を作成し、このビューをコンテンツの前に追加します。2 つの ontouchevent 移動間の時間をログに記録する関数を追加しました。
case MotionEvent.ACTION_MOVE:
mTime = System.currentTimeMillis()-mTime;
mTimeList.add(mTime);
mTime = System.currentTimeMillis();
[...]
path.lineTo(event.getX(), event.getY());
invalidate();
break;
case MotionEvent.ACTION_UP:
int listSize = mTimeList.size();
long value =0;
for (Long time : mTimeList) {
value = value+time;
}
int finalvalue = (int) ((value/listSize));
Log.i("MotionEvent", "Average time : "+Long.toString(finalvalue));
break;
私の問題
アクティビティを作成し、レイアウトをカスタム ビューに設定すると、非常にうまく機能します。私の customView だけがあり、2 つの移動間の時間は約17msです。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(new MyView(this));
アクティビティを作成し、カスタム ビューを空のメインレイアウト (relativelayout) に追加すると、2 つの移動間の時間がほぼ同じになります。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mapfullscreen_hotcold); RelativeLayout mainLayout = (RelativeLayout)findViewById(R.id.mapfullscreen_relativeLayout); MyView view = new MyView(this); mainLayout.addView(view);
アクティビティを作成し、カスタム ビューをマップフラグメントを含むメインレイアウト (relativelayout) に追加すると、2 つの移動間の時間は約47msになります。
---ACTIVITY--- @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mapfullscreen_hotcold); RelativeLayout mainLayout = (RelativeLayout)findViewById(R.id.mapfullscreen_relativeLayout); MyView view = new MyView(this); mainLayout.addView(view); ---XML--- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mapfullscreen_relativeLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:id="@+id/mapfullscree_mapLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:name="com.google.android.gms.maps.MapFragment" /> </RelativeLayout>
高速化するにはどうすればよいですか?
ビューに触れたとき、以下のコンテンツはビューモーションイベントに影響を与えませんよね?
編集: そして、mapsStaticAPI が入力された imageView を含むメインレイアウト (relativelayout) にカスタム ビューを追加すると、2 つの移動間の時間は約 17ms/19ms になります。
2 つの移動の間に短い遅延がある googleMapsFragment を維持するための解決策は何ですか?