您可以使用翻译补间动画来实现这一点。
将包含文本视图、图像视图和按钮的线性布局放置在父线性/相对布局中:
<LinearLayout android:id="@+id/parent_layout">
<LinearLayout android:id="@+id/container_layout">
<Textview />
<ImageView />
<Buttons />
</LinearLayout>
</LinearLayout>
在 res/anim 文件夹中定义两个翻译补间动画,一个用于上一个,另一个用于下一个
`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);
点击下一个和上一个时,浏览数据库,更新文本视图、图像视图等并触发动画
previousButtonOnClick {
//navigate db and update views
containerLayout.startAnimation(previousAnim);
}
nextButtonOnClick {
//navigate db and update views
containerLayout.startAnimation(nextAnim);
}