【学习笔记】android动画的不同实现方式以及要点

1.xml和代码一起实现Animation
Animation zoomIn = AnimationUtils.loadAnimation(this,R.anim.zoom_in);
			txtIdentifying.setVisibility(View.VISIBLE);
			txtIdentifying.startAnimation(zoomIn);

一般用于出现,消失好像效果不好;

2.activity跳转时

startActivity();
overridePendingTransition(R.anim.activity_start_in,R.anim.activity_start_out);

finish();
overridePendingTransition(R.anim.activity_finish_in,R.anim.activity_finish_out);
用于activity跳转,前一个是跳过去,第二个是结束activity返回效果;

3.objectAnimator代码实现

AnimatorSet set = new AnimatorSet();
ObjectAnimator alpha_pic = ObjectAnimator.ofFloat(mRel, "alpha",0, 1);
ObjectAnimator tranY_pic = ObjectAnimator.ofFloat(mRel,"translationY",
this.getHeight() + this.getHeight() / 2, 0);
ObjectAnimator scaleX = ObjectAnimator.ofFloat(mRel, "scaleX",0.1f, 1);
ObjectAnimator scaleY = ObjectAnimator.ofFloat(mRel, "scaleY",0.1f, 1);
set.setDuration(300);
set.playTogether(alpha_pic, tranY_pic, scaleX, scaleY);
set.start();

这里 第二个参数 常用的有"alpha","translationY","translationX","translationY","rotationX","rotationY","scaleX","scaleY".

4.xml和代码一起实现objectAnimator

<?xml version="1.0" encoding="utf-8"?>  
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"  
	android:duration="2000"  
	android:propertyName="scaleX"  
	android:repeatCount="1"  
	android:repeatMode="reverse"  
	android:valueFrom="1.0"  
	android:valueTo="2.0" >  
</objectAnimator> 
ObjectAnimator scaleAnimator = (ObjectAnimator) AnimatorInflater  
.loadAnimator(this, R.animator.scale_object_animator);    
scaleAnimator.setTarget(imageview_scale);//设置动画作用的目标对象    
scaleAnimator.setDuration(1000);    
scaleAnimator.setRepeatCount(50);    
scaleAnimator.start();   

这个propertyName后面填的值解释

accessibilityLiveRegion,setAccessibilityLiveRegion(int)
辅助性服务是否应自动通知更改视图的内容描述或文本,或者子view的文字描述或文本内容;(none——不通知、polite——通知、assertive——打断语音,并通知)

animationResolution

超时的动画帧之间的毫秒 ;必须是一个整数值,如“100”

ems
设置TextView或者Edittext的宽度为10个字符的宽度。当设置该属性后,控件显示的长度就为10个字符的长度,超出的部分将不显示.

disabledAlpha
设置按钮在禁用时透明度

android:stepSize
评分的步长,必须是浮点类型,像“1.2”

5.Animation和Animator区别

Animation 是针对视图外观的动画实现,动画被应用时外观改变但视图的触发点不会发生变化,还是在原来定义的位置。
Animator  是针对视图属性的动画实现,动画被应用时对象属性产生变化,最终导致视图外观变化。

6.利用PropertyValuesHolder实现动画代码的重用

//使用PropertyValuesHolder 构造 Animator   组合成类似set的效果
        PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("scaleX",0f,2.5f);  
        PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleY",0f,3f);       
        ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(imageview, pvhX,pvhY);  
        animator.setDuration(2000);  

7.代码设置动画速率

anim.setInterpolator(new AccelerateInterpolator());


 
 


(持续更新)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值