Android图片翻页动画
时间: 2023-10-06 18:11:08 浏览: 160
android图片翻转动画
5星 · 资源好评率100%
Android中实现图片翻页动画可以使用ViewPager和PageTransformer。ViewPager是一个可以左右滑动的ViewGroup,PageTransformer可以用于自定义页面转换动画。
下面是一个简单的实例,展示如何实现图片翻页动画:
1. 首先,在布局文件中添加ViewPager。
```xml
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
```
2. 创建一个Adapter用于提供数据和View。
```kotlin
class ImagePagerAdapter(private val images: List<Int>, private val context: Context) : PagerAdapter() {
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val view = ImageView(context)
view.setImageResource(images[position])
container.addView(view)
return view
}
override fun getCount(): Int {
return images.size
}
override fun isViewFromObject(view: View, `object`: Any): Boolean {
return view == `object`
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
container.removeView(`object` as ImageView)
}
}
```
3. 在Activity中设置ViewPager和PageTransformer。
```kotlin
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val images = listOf(R.drawable.image1, R.drawable.image2, R.drawable.image3)
val adapter = ImagePagerAdapter(images, this)
viewPager.adapter = adapter
viewPager.setPageTransformer(true, object : ViewPager.PageTransformer {
override fun transformPage(page: View, position: Float) {
if (position < -1) {
page.alpha = 0f
} else if (position <= 0) {
page.alpha = 1f
page.rotationY = -180 * (1 - Math.abs(position) + 1)
} else if (position <= 1) {
page.alpha = 1f
page.rotationY = 180 * (1 - Math.abs(position) + 1)
} else {
page.alpha = 0f
}
}
})
}
}
```
这个例子中使用了一个简单的PageTransformer来实现图片翻页动画。当页面滑动到左边时,图片会沿Y轴向左旋转180度,当页面滑动到右边时,图片会沿Y轴向右旋转180度。你可以根据需要自定义PageTransformer来实现不同的动画效果。
阅读全文