繁体   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