【问题标题】:How to open activity from bottom to top in android如何在android中从下到上打开活动
【发布时间】:2014-03-31 20:39:57
【问题描述】:

我想像滑动效果一样从下到上开始我的活动,我搜索甚至使用了所有可能的代码,但它不起作用,所以任何人都可以帮我解决这个问题。 我什至使用了以下代码:

overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up);

我也使用以下 xml:

slide-in-up.xml

<translate
    android:duration="5000"
    android:fromYDelta="100%p"
    android:toYDelta="0" />

<alpha
    android:duration="5000"
    android:fromAlpha="0.0"
    android:toAlpha="1.0" />

slide-out-up.xml

<translate
    android:duration="5000"
    android:fromYDelta="0"
    android:toYDelta="-100%p" />

<alpha
    android:duration="5000"
    android:fromAlpha="1.0"
    android:toAlpha="0.0" />

但它也不起作用。

【问题讨论】:

  • 当你说它不起作用时,有什么问题?有错误吗?也许你需要做“getRessource().getAnimation(R.anim.slide_in_up)”
  • @Tsunaze 这并没有给我错误,而是我想要的动画不会出现。(从底部到向上滑动活动)。

标签: android


【解决方案1】:

你可以试试

Animation animMove;
animMove = AnimationUtils.loadAnimation(getApplicationContext(),
                R.anim.move);
        animMove.setAnimationListener(this);

你的 move.xml 在哪里

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:fillAfter="true">

   <translate
        android:fromYDelta="50%p"
        android:toYDelta="0%p"
        android:duration="800" />
</set>

这里您必须根据您的要求更改 fromYDelta 参数。

【讨论】:

  • 我试过这个但找不到 animMove.setAnimationListener(this);这给了我错误。
  • 你在哪里使用这段代码,我的意思是在哪个方法里面。
  • onButtonClickListener 当我尝试使用意图传递活动时。
  • 然后使用animMove.setAnimationListener(yourActivityname.this); 而不是animMove.setAnimationListener(this);
  • 如果你的活动名称是 MainActivity.java 然后传递animMove.setAnimationListener(MainActivity.this);
【解决方案2】:

在 res/anim/slide_in_up.xml 中定义一个动画:

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

另一个在 res/anim/slide_out_up.xml:

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

然后在调用 startActivity 之后应用这些:

Intent i2 = new Intent(main.this, test.class);
startActivity(i2);
overridePendingTransition( R.anim.slide_in_up, R.anim.slide_out_up );

【讨论】:

  • 这是我正在使用的实际代码,但动画不起作用。您能否为此提供一个替代方案。
【解决方案3】:

如果您正在寻找 Top-Bottom 和 Bottom-Top 动画,请在下面查看我的答案:

Android Animation Example

如果需要左右动画,可以更改 fromDelta 和 toDelta 的值。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 2016-06-20
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多