Android基本动画
一、android中基础动画中主要分为四种:
- Tween Animation.变换动画
- Layout Animation 布局动画
- Frame Animation.帧动画
- Property Animation 属性动画
二、动画学习
一:Tween Animation变换动画:
在变换动画中分为基本的四种:
1:Alpha:渐变透明度动画类型
2:Scale:渐变尺寸动画类型
3:Translate:位置移动动画类型
4:Rotate:旋转动画类型
其中这四种方法所通用的属性是一样的,属性如下:
1,Duration:表示动画持续时间,其单位为毫秒 ,一般在java中实现的是按照比如 button.setDuration(1000);(其中button为一个引用,1000为毫秒,也就是动画持续时间。)
2,fillAfter:表示动画转换在动画结束后被应用状态,也就是说比如在Translate中可能动画运行为一段平移,fillAfter就是说在动画结束后确定动画对象所处的位置。其返回值为一个boolean值,为true时表示结束就定在结束的位置,如果为false就说明结束后跳回动画开始前的位置。
3,fillBefore:动画转化在动画开始前的位置,可以理解与fillAfter相互理解。
4,interpolator:动画插入器(用于对一个动画进行一个加速,减速插入器的作用)
5:repeatcount:动画重复的次数,对于重复动画的定义。
6:repeatmode:决定动画重复是顺序还是倒序重复。
7,startoffset:动画与动画之间的时间间隔(一般用于两个或者多个动画的连续播放,也可以设置监听器来代替此功能)
在java里,有如下几种类型:
1,AlphaAnimation有参数fromAlpha:起始时的透明度,toAlpha:结束后的透明度用(0.0f到1.0f表示)f表示浮点数。
2,ScaleAniamtion有fromX,toX,和fromY,toY,以及pirotX,priotY等参数,分别表示起始和结束时坐标的大小位置,以及对于x,y坐标开始的位置。
3,TranslateAnimation有参数fromxDelta,fromyDelta为移动前x,y的起始坐标,toxDelta,toyDelta分别为结束时的x,y坐标。
4,RotateAnimation有设置参数fromDegrees起始角度,toDegrees终止角度,以及pirotX,priotY参数。
1.XML方式设置动画
package com.bw.day02;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
import org.xutils.view.annotation.ContentView;
import org.xutils.view.annotation.Event;
import org.xutils.view.annotation.ViewInject;
import org.xutils.x;
import day01.bw.com.myapplicationfour.R;
@ContentView(R.layout.activity_tween_anima)
public class TweenAnimaActivity extends AppCompatActivity {
@ViewInject(R.id.showAnima)
private ImageView showAnima;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tween_anima);
x.view().inject(this);
}
@Event(value = {
R.id.alpha,R.id.rotate,R.id.scale,R.id.translate,R.id.setAnima},type = View.OnClickListener.class)
private void click(View view){
switch (view.getId()){
case R.id.alpha:
setAlpha();
break;
case R.id.rotate:
setrotate();
break;
case R.id.scale:
setScale();
break;
case R.id.translate:
setTranslate();
break;
case R.id.setAnima:
setSetAnima();
break;
}
}
private void setSetAnima() {
Animation animation = AnimationUtils.loadAnimation(this, R.anim.set);
showAnima.startAnimation(animation);
}
private void setTranslate() {
Animation animation