android旋转view,android-具有旋转变换的ViewPager

本文介绍了如何创建一个带有旋转效果的ViewPager,当滑动时,页面围绕其宽度和高度轴旋转。通过实现ViewPager.PageTransformer并自定义旋转角度,实现了类似转盘效果的页面切换动画。同时提供了一个示例代码,帮助理解如何设置旋转枢轴点和动画过渡。
摘要由CSDN通过智能技术生成

我想创建ViewPager,它在滑动时围绕其getWidth()和getHeight()轴旋转.我尝试过,但是所有这些转换只有在具有各种效果的垂直和水平情况下才可行.

有什么方法或提示可以开发这种ViewPager吗?

编辑-解释哪种旋转

轴-getWidth,getHeight应该是枢轴点,一旦我滑动它,它就会旋转,对于下一页,它应该从(0,getHeight)轴旋转.

为简化起见,请考虑以下简单情况-

>有一个有四个部分的圆

>当前仅显示1个部分,其余3个在屏幕外

>从右向左滑动后,ViewPager应该从第1页旋转到第2页.

>如果我从左向右滑动,ViewPager应该从第1页旋转到第4页.

>每次退出页面和进入页面都应从该圆圈的中心旋转.

>圆的中心位于第一页的getWidth,getHeight.因此,对于下一页,它将始终为0,getHeight作为轴;对于上一页,将始终为getWidth,对于轴始终为0.

解决方法:

更新

据我所读,您想要这样的过渡.实现了一个ViewPager.PageTransformer,如下所示.

RlUOu.gif

这是ViewPager.PageTransformer类:

public class RotationCircleTransformer implements ViewPager.PageTransformer {

public RotationCircleTransformer() {

}

public void transformPage(View view, float position) {

int pageWidth = view.getWidth();

int pageHeight = view.getHeight();

view.setPivotX((float) pageWidth);

view.setPivotY((float) pageHeight);

if (position < -1) { //[-infinity,1)

//off to the left by a lot

view.setRotation(0);

view.setAlpha(0);

} else if (position <= 1) { //[-1,1]

view.setTranslationX((-position) * pageWidth); //shift the view over

view.setRotation(position * (90)); //rotate it

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值