Android 开发艺术探索笔记(15)

网友投稿 600 2022-11-17

Android 开发艺术探索笔记(15)

Android 开发艺术探索笔记(15)

帧动画

帧动画是播放一组预定好的图片,类似于电影播放。 系统提供了另一个类AnimationDrawable来使用帧动画。用法是现在XML用< animation-list>来放入帧Drawable,然后将上述的Drawable作为View的背景来播放动画。

Button mButton = findViewById(R.id.button);mButton.setBackgroundDrawable(R.drawable.frame_animation);AnimationDrawable drawable = (AnimationDrawable)mButton.getBackground();drawable.start();

帧动画比较简单,但容易引起OOM,所以在使用帧动画时,尽量避免使用过多尺寸大的图片。

View动画的特殊使用场景 View动画还可以在ViewGroup中控制子元素的出场效果,在Activitiy中可以实现不同Activity之间切换效果。具体用到的类是LayoutAnimation和overridePendingTransition这个方法。具体代码就不展示了。

属性动画

属性动画可以作用于任何对象,也有多样的动画效果。默认时间间隔是300ms,默认帧率是10ms/帧。兼容API11以下的话要用的NienOldAdnroids的动画库 比较常用的几个动画类ValueAnimator、ObjectAnimator、AnimatorSet 其中ObjectAnimator继承ValueAnimator,AnimatorSet是一个动画合集。

下面用ObjectAnimator对一个对象(myobject)做一个y轴上的平移的动画效果:

下面是用ValueAnimator来实现对一个对象的颜色渐变的动画效果

下面是用AnimatorSet来5s内对View进行平移、旋转、缩放、改变透明度

也可以通过XML来定义,要在res/animator/下,语法如下:

参数比较好理解,里面可以定义objectAnimator和ValueAnimator。

ordering属性是指子动画同时播放或者按顺序播放。默认为together,下面是各个属性的解释:

然后再代码中去运用

AnimatorSet set = (AnimatorSet)AnimatorInflater.loadAnimator(mContext,R.anim.propety_animator);set.setTarget(mButton);set.start();

建议在代码中使用动画,这样更加简单,如果用xml很多时候一个属性的起始值是无法确定的,比如我们无法知道屏幕的宽度,因此无法使用。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅学设计模式之原型模式 (3/23)
下一篇:K8S pod的生命周期
相关文章

 发表评论

暂时没有评论,来抢沙发吧~