1

コンテキスト

ユーザーが前のビューを指で消去してコンテンツ (マップフラグメント) を表示できるアプリケーションを開発しています。

描画を処理する 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 を維持するための解決策は何ですか?

4

0 に答える 0