Android 表格行动画的过渡动画

发布于 2024-10-31 19:56:01 字数 345 浏览 0 评论 0原文

我有一个桌行,只需按一下按钮,就会慢慢淡出并消失。为此,我使用了以下代码。

private TableRow topRow = (TableRow) findViewById(R.id.topRow);
.....
.....

topRow.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.fade_out));
topRow.setVisibility(View.INVISIBLE);

在另一种情况下,该行必须缓慢下降(就像日落一样)并变得不可见。上面的代码有什么变化或者如何安排?

I have a tablerow which on a button touch, slowly fade out and go to invisible. For that I have used the following code.

private TableRow topRow = (TableRow) findViewById(R.id.topRow);
.....
.....

topRow.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.fade_out));
topRow.setVisibility(View.INVISIBLE);

In another case, the row have to go down slowly(just like sunset) and become invisible. What change in the above code or how it is possible to arrange?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

是你 2024-11-07 19:56:01

您想要一个淡出(缓慢降低 Alpha)并平移(向下移动行)的动画。这可以在动画 xml 资源文件中设置,如下所示:

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0" android:toYDelta="50%p"
        android:duration="@android:integer/config_longAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
        android:duration="@android:integer/config_longAnimTime" />
</set>

然后您需要调用新动画(就像您在代码示例中所做的那样),但现在您需要它在动画开始之前可见。如果您将动画 xml 作为 Sunset.xml 存储在 /res/anim/ 文件夹中,您应该通过包含以下代码来实现您想要的效果:

topRow.setVisibility(View.VISIBLE);
topRow.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(),R.anim.sunset));
topRow.setVisibility(View.INVISIBLE);

You want an animation that fades out (slowly turns down the alpha) and translates (moves the row down). This can be set in an animation xml resource file like so:

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0" android:toYDelta="50%p"
        android:duration="@android:integer/config_longAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
        android:duration="@android:integer/config_longAnimTime" />
</set>

You then need to call your new animation (as you do in your code sample already), but now you need it to be visible before the animation starts. If you store your animation xml in the /res/anim/ folder as sunset.xml you should achieve what you want by including this code:

topRow.setVisibility(View.VISIBLE);
topRow.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(),R.anim.sunset));
topRow.setVisibility(View.INVISIBLE);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文