android翻页动画
来源:互联网 发布:淘宝价格变化 编辑:程序博客网 时间:2024/05/21 08:37
先上代码:
public class MainActivity extends Activity implements View.OnClickListener { private static final int DURATION = 400; View mFrontView; View mBackView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mFrontView = findViewById(R.id.front); mFrontView.setOnClickListener(this); mBackView = findViewById(R.id.back); mBackView.setOnClickListener(this); } @Override public void onClick(View view) { final int id = view.getId(); if (id == R.id.front) flip(mFrontView, mBackView, DURATION); else if (id == R.id.back) flip(mBackView, mFrontView, DURATION); } public void flip(final View front, final View back, final int duration) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { AnimatorSet set = new AnimatorSet(); set.playSequentially( ObjectAnimator.ofFloat(front, "rotationY", 90).setDuration(duration / 2), ObjectAnimator.ofInt(front, "visibility", View.GONE).setDuration(0), ObjectAnimator.ofFloat(back, "rotationY", -90).setDuration(0), ObjectAnimator.ofInt(back, "visibility", View.VISIBLE).setDuration(0), ObjectAnimator.ofFloat(back, "rotationY", 0).setDuration(duration / 2) ); set.start(); } else { front.animate().rotationY(90).setDuration(duration / 2).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { front.setVisibility(View.GONE); back.setRotationY(-90); back.setVisibility(View.VISIBLE); back.animate().rotationY(0).setDuration(duration / 2).setListener(null); } }); } }}代码解析:
ObjectAnimator.ofFloat(front, "rotationY", 90).setDuration(duration / 2)就是front对象执行沿着Y轴方向,旋转90度,耗时duration/2
ObjectAnimator.ofInt(front, "visibility", View.GONE).setDuration(0)就是front对象执行可见动画,变为不可见,耗时0秒
front.animate().rotationY(90).setDuration(duration / 2).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { front.setVisibility(View.GONE); back.setRotationY(-90); back.setVisibility(View.VISIBLE); back.animate().rotationY(0).setDuration(duration / 2).setListener(null); } });这个的意思是:
front在旋转90度之后,将front变为不可见,然后back的角度调整(右边向外转90度),然后变为可见,最后旋转到0度
0 0
- android翻页动画
- android 动画之翻页
- Android ViewPager 自定义翻页动画
- Android 仿flipboard翻页动画实现
- 翻页动画
- 写了一个android带动画翻页效果的程序
- Android 两Activity之间动画效果(1)---------翻页效果
- Android开发笔记(十八)书籍翻页动画PageAnimation
- Android-ViewFlipper动画导航(可手动翻页)
- ViewFlipper 实现翻页动画
- IOS翻页动画
- 动画翻页功能剪辑
- 简单翻页动画实现
- iOS翻页动画
- 制作POP翻页动画
- ViewPager的翻页动画
- 水滴动画和翻页动画
- 翻页动画,fragment翻页动画,Activity的进出场动画
- php 帕斯卡命名转换成下划线分割命名
- Paul M Watt系列文章要点翻译<一>:Guide to WIN32 Paint for Beginners
- Activity启动模式详解
- 深入理解django的Urls分发
- js获取img路径src
- android翻页动画
- 每周linux学习(1) --- 杂文
- 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)
- (转) android MediaPlayer API 详解
- dup and dup2剖析
- PMC Flashtec™ NVRAM 闪存加速卡 FAQ
- Oracle查询连接数,进程数等操作
- 手机文件不小心删除怎么恢复
- IOS UIPickView+sqlite 选择中国所有城市案例