属性动画对比原来的视图动画有很多的优点,属性动画可以对所有的对象做动画 *** 作,但Android开发中需要做动画最多的还是View,如果只是对一个view做动画,很少的几个属性还行,如果是对同一个view的十几个属性同时做动画,相信属性动画的写法是比较繁琐的。ViewPropertyAnimator从名字就可以看出是专用于View的属性动画,在API12被提供。ViewPropertyAnimator专用于 *** 作View动画,语法更加简洁,使用更加方便。
developer: https://developer.android.google.cn/reference/android/view/ViewPropertyAnimator
如何获取ViewPropertyAnimator 对象:
ViewPropertyAnimator 没有构造函数,通过View.animate()方法可以方便的获取ViewPropertyAnimator 对象,此时获取的动画对象就专用于 *** 作当前view。
setDuration()//设置动画时长
setInterpolator()//设置插值器
setStartDelay()//设置延迟开始时间
start()//立刻开始动画
cancel()//取消动画
明显看到图片先往下走了一段,然后向左的动画才开始执行。
链式 *** 作
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(2000).translationY(300).scaleX(0.5f)
以上函数的执行,会导致相同动画的cancle,以上函数都是除了坐标相关都是以view左上角为坐标原点。
方法都比较简单,下面距几个列子:
首先利用translationX,translationXBy来区分By的意义:
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).translationY(300)
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).translationYBy(300)
translationYBy 可以多次移动View,translationY多次执行没有效果。
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).x(100).y(100)
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(2000).rotation(270)
据观察withEndAction相当于动画开始,withStartAction相当于动画结束。
可以看到可以添加setUpdateListener监听,但无法通过这个监听函数监听到当前动画的信息,所以这个监听函数可能用处不大。
Animation动画概述和执行原理
Android动画之补间动画TweenAnimation
Android动画之逐帧动画FrameAnimation
Android动画之插值器简介和系统默认插值器
Android动画之插值器Interpolator自定义
Android动画之视图动画的缺点和属性动画的引入
Android动画之ValueAnimator用法和自定义估值器
Android动画之ObjectAnimator实现补间动画和ObjectAnimator自定义属性
Android动画之ObjectAnimator中ofXX函数全解析-自定义Property,TypeConverter,TypeEvaluator
Android动画之AnimatorSet联合动画用法
Android动画之LayoutTransition布局动画
Android动画之共享元素动画
Android动画之ViewPropertyAnimator(专用于view的属性动画)
Android动画之Activity切换动画overridePendingTransition实现和Theme Xml方式实现
Android动画之ActivityOptionsCompat概述
Android动画之场景变换Transition动画的使用
Android动画之Transition和TransitionManager使用
Android动画之圆形揭露动画Circular Reveal
Android 动画之 LayoutAnimation 动画
Android动画之视图动画的缺点和属性动画的引入
如果是应用全局的动画,则在style文件里面定义<style name="Animation_Activity" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/right_in</item>
<item name="android:activityOpenExitAnimation">@anim/left_out</item>
<item name="android:activityCloseEnterAnimation">@anim/left_in</item>
<item name="android:activityCloseExitAnimation">@anim/right_out</item>
</style>
right_in这些为动画文件
然后在你程序的theme里面定义如下
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowAnimationStyle">@style/Animation_Activity</item>
</style>
如果只是想用一次,则是在activity跳转时添加如下代码
overridePendingTransition(R.anim.zoom_in, R.anim.zoom)
//R.anim.zoom_in, R.anim.zoom为动画文件
AlertDialog控件类是可以添加按钮,标题等如:
AlertDialog ale = new AlertDialog.Builder(MainActivity.this).create()
ale.setTitle(" *** 作提示")
ale.setMessage("绑定设备完成")
ale.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
ale.show()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)