Android 动画详解(二)之animation组合使用
来源:互联网 发布:折扇起源知乎 编辑:程序博客网 时间:2024/06/08 08:40
“基本功不扎实,功力永远无法登峰造极”
本次上次介绍的是animation的基本使用,大家可以先看看Android 动画详解(一)之animation,经过上一篇的沉淀,相信大家已经对Android的animation的动画已经有一定的积累,本篇进说说animation相对高级一些的使用。
首先是动画的连续播放反两种方式:
1、Java代码监听:
// 先加载第一个动画的实例 Animation translate = AnimationUtils.loadAnimation(getActivity(),R.anim.translate_animation); // 在加载第二个动画的实例 final Animation scale = AnimationUtils.loadAnimation(getActivity(),R.anim.scale_animation); // 接下来,我们队第一个动画进行监听,当它播放完成后,我们播放第二个动画 translate.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { //动画开始时调用 } @Override public void onAnimationEnd(Animation animation) { //动画完成时调用 imgView.startAnimation(scale); } @Override public void onAnimationRepeat(Animation animation) { //动画重复时调用 } }); //开启第一个动画imgView.startAnimation(translate);
老规矩,有Java的方式,当然少不了xml的方式
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" android:fillEnabled="true"> <alpha android:fromAlpha="0" android:toAlpha="1" android:duration="3000"/> <translate android:duration="1000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="100" android:toYDelta="100" android:startOffset="3000" /> </set>
有没有发现,在中有startOffset属性,就是说,延时多少毫秒播放,在我们的xml文件中,startOffset的值于标签中的duration属性的值相同,也就是说,translate动画在alpha动画结束之后所显示。
在xml中设置以后,只要在Java文件中调用一下就好,
Animation continueAnim = AnimationUtils.loadAnimation(getActivity(),R.anim.continue_animation); imgView.startAnimation(continueAnim);
当然也可以同时播放,那就简单多了,监听延时啥的都去掉,你试试。
再说说动画的重复播放:
final Animation translateAnimation=new TranslateAnimation(0,200,0,200); translateAnimation.setDuration(3000); //设置动画持续时间 translateAnimation.setRepeatCount(2); //设置重复次数 translateAnimation.setRepeatMode(Animation.RESTART); //重新从头执行 //translateAnimation.setRepeatMode(Animation.REVERSE); //反方向执行 image.setAnimation(translateAnimation); //设置动画效果 translateAnimation.startNow();
在Android 的Java代码中,通过setRepeatCount属性设置动画重复多少次。
xml方式:
<translate android:duration="1000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="100" android:toYDelta="100" android:repeatCount="5" android:repeatMode="restart" />
一样,也是repeatCount属性来设置。
有的app的Activity也是带有动画效果的,来看看简单的实现
Intent intent = new Intent(getActivity(),SecondActivity.class); startActivity(intent); //通过overridePendingTransition方法来设置Activity进入和退出的动画,//第一个参数是要跳转的Activity进入是的动画效果//第二个参数是当前的Activity退出的动画效果overridePendingTransition(R.anim.fade_in,R.anim.hold_out);
就是这么简单。
finish(); 当前Activity在finish的时候一样可以设置。overridePendingTransition(R.anim.fade_in,R.anim.hold_out);
ok,本篇先到这里哦。关于动画的知识还是有不少的,下一篇还是动画相关。
阅读全文
0 0
- Android 动画详解(二)之animation组合使用
- Android Animation动画详解(二): 组合动画特效
- 【Android 动画】Property Animation详解(二)
- Android动画之Property Animation(二)
- Android 动画详解(一)之Animation
- Animation---详解Android动画之Frame Animation
- Animation---详解Android动画之Tween Animation
- Android动画之属性动画(Property Animation)(二)
- android 动画-Tween Animation(二) 动画的简单使用
- Android 动画详解之属性动画(Property Animation)(下)
- Animation动画详解二
- Android--详解Android动画之Tween Animation
- Android基础夯实--重温动画(二)之Frame Animation
- Android动画之二:View Animation
- Android动画之二:View Animation
- Android动画之二:View Animation
- Android动画之二:View Animation
- 详解Android动画之Frame Animation
- Promise对象——ECMAScript 6 入门笔记(一)
- springmvc或者springboot整合swagger
- python scrapy cannot import name '_win32stdio'的解决办法
- 2017-12-12
- POJ-1511 Invitation Cards
- Android 动画详解(二)之animation组合使用
- AngularJs路由
- webpack 使用心得
- MySQL常用指令
- 功放
- QMUI-Android的一些尝试(圆形进度条、Loading、圆形图片、圆形按钮、椭圆图片)
- Vue基础(Class 与 Style 绑定)
- 凭什么你的团队符合最佳雇主?
- Jquery UI (一)