簡體   English   中英

如何實現幻燈片在android中顯示動畫?

[英]How to implement slide to reveal animation in android?

我創建了5個活動,每個活動都有一個只包含圖像的ListView。 我使用了一個簡單的滑動動畫來改變活動。

這是相關代碼:

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (gestureDetector.onTouchEvent(event)) {
        return true;
    }
    return super.onTouchEvent(event);
}

private void onLeftSwipe() {
    Intent intent = new Intent(HimachalActivity.this, IndianWildlifeActivity.class);
    startActivity(intent);
    overridePendingTransition(R.anim.slide_left_in, R.anim.slide_left_out);
}

private void onRightSwipe() {
    Intent intent = new Intent(HimachalActivity.this, BaseActivity.class);
    startActivity(intent);
    overridePendingTransition(R.anim.slide_right_in, R.anim.slide_right_out);
}

private class SwipeGestureDetector extends GestureDetector.SimpleOnGestureListener {
    // Swipe properties, you can change it to make the swipe
    // longer or shorter and speed
    private static final int SWIPE_MIN_DISTANCE = 120;
    private static final int SWIPE_MAX_OFF_PATH = 200;
    private static final int SWIPE_THRESHOLD_VELOCITY = 200;

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2,
                           float velocityX, float velocityY) {
        try {
            float diffAbs = Math.abs(e1.getY() - e2.getY());
            float diff = e1.getX() - e2.getX();

            if (diffAbs > SWIPE_MAX_OFF_PATH)
                return false;

            // Left swipe
            if (diff > SWIPE_MIN_DISTANCE
                    && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                HimachalActivity.this.onLeftSwipe();

                // Right swipe
            } else if (-diff > SWIPE_MIN_DISTANCE
                    && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                HimachalActivity.this.onRightSwipe();
            }
        } catch (Exception e) {
            Log.e("BaseActivity", "Error on gestures");
        }
        return false;
    }
}

問題是下一個活動或上一個活動僅在完全滑動后才會打開,並且動畫感覺不順暢。

我想要一個動畫,當我開始滑動時,下一個活動或上一個活動開始顯示自己。 是否有可以應用的內置動畫。 如果沒有,請指出我自己創建一個相關資源,可能是一個不需要我修改現有代碼的資源。 謝謝。

據我所知,這個功能在Lollipop材料設計模塊中很容易獲得。

我想,如果你按照@Whitney的建議,會更容易。 將您的片段放入視圖尋呼機中,如下所述: http//developer.android.com/training/animation/screen-slide.html

它不能與您當前的實現一起使用的原因是該設備只有在您摔倒后才能理解手勢。 此后,動畫發生。 實時未檢測到Fling。 如果您想實現實時銷售,可能必須覆蓋觸摸事件,如下所述: http//developer.android.com/training/custom-views/making-interactive.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM