0

私は私のAndroidプロジェクトにスプラッシュスクリーンを実装するこのチュートリアルに従っています。ユーザーが画面を2回タップするたびにスプラッシュスクリーンを閉じたいです。これがタッチイベントを使用して実行できる場合、どのように使用しましたか?

4

3 に答える 3

0

そこから「onInterceptTouch」を確認する必要があります。「finish();」を実行できます。いつものように

http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent%28android.view.MotionEvent%29

LinearLayouts android:clickable="true"を設定することもできます

次に、onclicklistnerを使用します

final LinearLayout MYLAYOUT = (LinearLayout) findViewById(R.id.MYLAYOUT);
    MYLAYOUT.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });

線形レイアウト内のすべてのビューにandroid:duplicateParentState="true"を追加する必要がある場合もあります

于 2013-07-16T11:06:12.843 に答える
0

最も簡単な方法は、ジェスチャー検出器を使用することです。

コードで参照を取得できるように、スプラッシュ LinearLayout に ID を追加します。

次に、MainActivity の onCreate で次のことを行う必要があります。

@Override
public void onCreate() {
super.onCreate();
...
LinearLayout splashBg = (LinearLayout)findViewById(R.id.splash_bg);
GestureListener mGestureListener = new GestureListener();
GestureDetector mGestureDetector = new GestureDetector(this, mGestureListener);
splashBg.setOnTouchListener(new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return mGestureDetector.onTouchEvent(event);
    }
});
}//end onCreate

ダブルタップをリッスンし、スプラッシュを閉じて次のアクティビティに進むには、このカスタム GestureListener を作成する必要があります。

private class GestureListener implements GestureDetector.OnDoubleTapListener {

        @Override
        public boolean onDoubleTap(MotionEvent e) {
            MainActivity.this.finish();

            if (!mIsBackButtonPressed) {
                 // start the home activity 
                 Intent intent = new Intent(MainActivity.this, HomeActivity.class);
                 MainActivity.this.startActivity(intent);
            }
            return true;
        }

        @Override
        public boolean onDoubleTapEvent(MotionEvent e) {
            return false;
        }

        @Override
        public boolean onSingleTapConfirmed(MotionEvent e) {
            return false;
        }

    }
于 2013-07-16T11:34:53.757 に答える