码迷,mamicode.com
首页 > 其他好文 > 详细

位移,缩放,旋转,透明度 动画

时间:2015-03-13 16:24:23      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

android中提供了4中动画:   
AlphaAnimation 透明度动画效果   
ScaleAnimation 缩放动画效果   
TranslateAnimation 位移动画效果   
RotateAnimation 旋转动画效果   
  
本节讲解ScaleAnimation 动画,   
ScaleAnimation(float fromX, float toX, float fromY, float toY,int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)   
参数说明:   
  
复制代码 代码如下:  
  
float fromX 动画起始时 X坐标上的伸缩尺寸   
float toX 动画结束时 X坐标上的伸缩尺寸   
float fromY 动画起始时Y坐标上的伸缩尺寸   
float toY 动画结束时Y坐标上的伸缩尺寸   
int pivotXType 动画在X轴相对于物件位置类型   
float pivotXValue 动画相对于物件的X坐标的开始位置   
int pivotYType 动画在Y轴相对于物件位置类型   
float pivotYValue 动画相对于物件的Y坐标的开始位置   
  
  
代码:   
  
复制代码 代码如下:  
  
public class MainActivity extends Activity {   
ImageView image;   
Button start;   
Button cancel;   
@Override   
public void onCreate(Bundle savedInstanceState) {   
super.onCreate(savedInstanceState);   
setContentView(R.layout.activity_main);   
image = (ImageView) findViewById(R.id.main_img);   
start = (Button) findViewById(R.id.main_start);   
cancel = (Button) findViewById(R.id.main_cancel);   
/** 设置缩放动画 */   
final ScaleAnimation animation =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,   
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);   
animation.setDuration(2000);//设置动画持续时间   
/** 常用方法 */   
//animation.setRepeatCount(int repeatCount);//设置重复次数   
//animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态   
//animation.setStartOffset(long startOffset);//执行前的等待时间   
start.setOnClickListener(new OnClickListener() {   
public void onClick(View arg0) {   
image.setAnimation(animation);   
/** 开始动画 */   
animation.startNow();   
}   
});   
cancel.setOnClickListener(new OnClickListener() {   
public void onClick(View v) {   
/** 结束动画 */   
animation.cancel();   
}   
});   
}   
}  
本节讲解ScaleAnimation 动画,   
ScaleAnimation(float fromX, float toX, float fromY, float toY,int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)   
参数说明:   
复制代码 代码如下:  
float fromX 动画起始时 X坐标上的伸缩尺寸   
float toX 动画结束时 X坐标上的伸缩尺寸   
float fromY 动画起始时Y坐标上的伸缩尺寸   
float toY 动画结束时Y坐标上的伸缩尺寸   
int pivotXType 动画在X轴相对于物件位置类型   
float pivotXValue 动画相对于物件的X坐标的开始位置   
int pivotYType 动画在Y轴相对于物件位置类型   
float pivotYValue 动画相对于物件的Y坐标的开始位置   
  
代码:   
复制代码 代码如下:  
public class MainActivity extends Activity {   
ImageView image;   
Button start;   
Button cancel;   
@Override   
public void onCreate(Bundle savedInstanceState) {   
super.onCreate(savedInstanceState);   
setContentView(R.layout.activity_main);   
image = (ImageView) findViewById(R.id.main_img);   
start = (Button) findViewById(R.id.main_start);   
cancel = (Button) findViewById(R.id.main_cancel);   
/** 设置缩放动画 */   
final ScaleAnimation animation =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,   
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);   
animation.setDuration(2000);//设置动画持续时间   
/** 常用方法 */   
//animation.setRepeatCount(int repeatCount);//设置重复次数   
//animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态   
//animation.setStartOffset(long startOffset);//执行前的等待时间   
start.setOnClickListener(new OnClickListener() {   
public void onClick(View arg0) {   
image.setAnimation(animation);   
/** 开始动画 */   
animation.startNow();   
}   
});   
cancel.setOnClickListener(new OnClickListener() {   
public void onClick(View v) {   
/** 结束动画 */   
animation.cancel();   
}   
});   
}   
}  
本节讲解RotateAnimation 动画,   
RotateAnimation (float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)   
参数说明:   
float fromDegrees:旋转的开始角度。   
float toDegrees:旋转的结束角度。   
int pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。   
float pivotXValue:X坐标的伸缩值。   
int pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。   
float pivotYValue:Y坐标的伸缩值。   
代码:   
<div class="codetitle"><span style="CURSOR: pointer"><u>复制代码</u></span> 代码如下:</div><div id="code17269" class="codebody">  
public class MainActivity extends Activity {   
ImageView image;   
Button start;   
Button cancel;   
@Override   
public void onCreate(Bundle savedInstanceState) {   
super.onCreate(savedInstanceState);   
setContentView(R.layout.activity_main);   
image = (ImageView) findViewById(R.id.main_img);   
start = (Button) findViewById(R.id.main_start);   
cancel = (Button) findViewById(R.id.main_cancel);   
/** 设置旋转动画 */   
final RotateAnimation animation =new RotateAnimation(0f,360f,Animation.RELATIVE_TO_SELF,   
0.5f,Animation.RELATIVE_TO_SELF,0.5f);   
animation.setDuration(3000);//设置动画持续时间   
/** 常用方法 */   
//animation.setRepeatCount(int repeatCount);//设置重复次数   
//animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态   
//animation.setStartOffset(long startOffset);//执行前的等待时间   
start.setOnClickListener(new OnClickListener() {   
public void onClick(View arg0) {   
image.setAnimation(animation);   
/** 开始动画 */   
animation.startNow();   
}   
});   
cancel.setOnClickListener(new OnClickListener() {   
public void onClick(View v) {   
/** 结束动画 */   
animation.cancel();   
}   
});   
}   
}
public class MainActivity extends Activity {
ImageView image;
Button start;
Button cancel;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageView) findViewById(R.id.main_img);
start = (Button) findViewById(R.id.main_start);
cancel = (Button) findViewById(R.id.main_cancel);
/** 设置透明度渐变动画 */
final AlphaAnimation animation = new AlphaAnimation(1, 0);
animation.setDuration(2000);//设置动画持续时间
/** 常用方法 */
//animation.setRepeatCount(int repeatCount);//设置重复次数
//animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态
//animation.setStartOffset(long startOffset);//执行前的等待时间
start.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
image.setAnimation(animation);
/** 开始动画 */
animation.startNow();
}
});
cancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
/** 结束动画 */
animation.cancel();
}
});
}
}
float fromXDelta 动画开始的点离当前View X坐标上的差值 
float toXDelta 动画结束的点离当前View X坐标上的差值
float fromYDelta 动画开始的点离当前View Y坐标上的差值
float toYDelta 动画开始的点离当前View Y坐标上的差值

animation.setDuration(long durationMillis);//设置动画持续时间
animation.setRepeatCount(int i);//设置重复次数
animation.setRepeatMode(Animation.REVERSE);//设置反方向执行

android:duration:运行动画的时间
android:repeatCount:定义动画重复的时间

public
class MainActivity extends Activity { ImageView image; Button start; Button cancel; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); image = (ImageView) findViewById(R.id.main_img); start = (Button) findViewById(R.id.main_start); cancel = (Button) findViewById(R.id.main_cancel); /** 设置位移动画 向右位移150 */ final TranslateAnimation animation = new TranslateAnimation(0, 150,0, 0); animation.setDuration(2000);//设置动画持续时间 animation.setRepeatCount(2);//设置重复次数 animation.setRepeatMode(Animation.REVERSE);//设置反方向执行 start.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { image.setAnimation(animation); /** 开始动画 */ animation.startNow(); } }); cancel.setOnClickListener(new OnClickListener() { public void onClick(View v) { /** 结束动画 */ animation.cancel(); } }); } }

 

位移,缩放,旋转,透明度 动画

标签:

原文地址:http://www.cnblogs.com/xiaoli3007/p/4335277.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!