线性布局的Android幻灯片动画

标签 android animation android-linearlayout slide

我的 Android 应用程序的一个 Activity 使用带有几个 TextView 和一个 ImageView 的线性布局。 textviews 和 imageview 从 sqlite 数据库中获取数据。 我还有两个按钮(上一个,下一个)可以在数据库中来回导航。工作正常。

现在我想在我的应用程序中添加动画:当我按下一个按钮时,线性布局(带有 TextView 和图像)应该向左滑动,而包含下一行数据的线性布局应该从右侧滑入. prev 按钮的另一种方式。

知道如何解决这个问题吗?

最佳答案

您可以使用转换补间动画实现此目的。

将包含 TextView 、 ImageView 和按钮的线性布局放置在父线性/相对布局中:

<LinearLayout android:id="@+id/parent_layout">
    <LinearLayout android:id="@+id/container_layout">
        <Textview />

        <ImageView />

        <Buttons />
    </LinearLayout>
</LinearLayout>

在res/anim文件夹下定义两个translate tween动画,一个用于上一个,另一个用于下一个

 `previous.xml` -

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

`next.xml` -

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

初始化动画并在 Activity 的 onCreate() 方法中获取“容器”布局的引用:

Animation previousAnim = AnimationUtils.loadAnimation(MainMenuActivity.this, R.anim.previous);
Animation nextAnim = AnimationUtils.loadAnimation(MainMenuActivity.this, R.anim.next);
LinearLayout containerLayout = (LinearLayout) findViewById(R.id.container_layout);

当点击 next 和 prev 时,浏览数据库,更新 textviews,imageviews 等并触发动画

previousButtonOnClick {
    //navigate db and update views 
    containerLayout.startAnimation(previousAnim);
}

nextButtonOnClick {
    //navigate db and update views 
    containerLayout.startAnimation(nextAnim);
}

关于线性布局的Android幻灯片动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22492599/

相关文章:

android - Firebase 云消息传递 : Expiration of FCM token

java - 获取回收器 View 位置给出 NullPointerException

javascript - d3 动画导致行为缓慢

javascript - 如何为线条设置动画以跟踪移动的 CSS 元素?

android - gridview元素的重复......!

android - 将多个 View 添加到 LinearLayout 的最快方法是什么?

android - 与屏幕右侧对齐,Android 有边距

Android 信标库 Eddystone 遥测。温度

java - SharedPreference 未将任何数据保存到我的设备中

ios - 核心动画立即调用完成函数