【问题标题】:View to leave from left and enter from right查看从左侧离开并从右侧进入
【发布时间】:2012-11-08 05:25:44
【问题描述】:

我想添加动画,以便我的 imageview 向左滑动,离开屏幕并从右侧进入,滑回原来的位置。我试着做这样的事情..

    <translate
        android:duration="1000"
        android:fromXDelta="0"
        android:toXDelta="-100%p" />

    <translate
        android:startOffset="1000"
        android:duration="1000"
        android:fromXDelta="100%p"
        android:toXDelta="0" />

但是动画不是我想要的……谁能帮帮我

【问题讨论】:

  • 请添加适当的语言标签

标签: android animation android-view


【解决方案1】:

编辑:好的,所以您要做的就是在 a** 中感到痛苦(又是一个应该很简单的 android 东西)!在早期版本的 android 上,两个动画相继出现并不能很好地发挥作用。在 never 版本上,您可以使用 api lvl 11 中的动画集。例如 here。或者,我会使用更简单的动画。

以下是活动滑入/滑出的方法(旧答案):

在左侧活动中滑动:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="100%p" android:toXDelta="0"
    android:duration="@android:integer/config_shortAnimTime"/>

滑入正确的活动:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="-100%p" android:toXDelta="0"
    android:duration="@android:integer/config_shortAnimTime"/>

滑出左侧活动:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0" android:toXDelta="-100%p"
    android:duration="@android:integer/config_shortAnimTime" />

滑出正确的活动:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0" android:toXDelta="100%p"
    android:duration="@android:integer/config_shortAnimTime" />

示例用法:

Intent intent = new Intent(this, YourNewActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);

背面使用示例:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        super.onBackPressed();
        overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right);
    }
    return super.onKeyDown(keyCode, event);
}

【讨论】:

  • 感谢 Warpzit 的回复,但我想将动画添加到我的图像视图中。
  • 这就是我使用两个“翻译”和第二个以 startOffset 开头的延迟的原因..
  • Warpzit,我明白了,但我只有一项活动..我希望我的图像视图离开并返回相同的视图...
  • 实际上.. 我的视图中有一个统一的 3d 东西,所以这是最合适的动画...我发现,在完成动画后,我的视图将始终返回到之前的位置。 .但我仍然想知道为什么动画没有按照代码中的规定运行......非常奇怪的是,当只使用一个翻译时,视图工作正常......从左到外,从右到内..但是当它们都是一起...视图似乎从右侧滑动穿过屏幕并从左侧离开...然后回到原来的位置..
  • @kirananil 它只是一个错误。我实际上花了一些时间试图让它工作,但它并不那么容易;)当我使用正确的参数时,它根本没有动画,它只是消失了,当时间用完时又回来了。但是有 1 个动画效果很好:)
【解决方案2】:

正如 Warpzit 所说,它是一个错误并且是一个已知问题...如 here

我浪费时间认为这是我的错误。开发人员指定的替代方案是- “你可以通过使用两个动画来实现它。启动第一个,然后 当它结束时(使用要通知的动画侦听器),启动 第二个。它没有那么好和容易,但它应该可以工作。”

我学到的另一件事是 android honeycomb 比旧版本有更多的动画功能..为了在 pre-honeycomb 版本中使用这些功能,我们可以使用nineoldandroids

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 2018-03-19
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    相关资源
    最近更新 更多