参考博文:点击打开链接
android设置动画效果可以通过xml和java代码两种方式
1.通过xml设置动画
在文件夹中添加xml文件:
view_anim_alpha
0.0,动画反复执行;
* restart为0.0 -> 1.0, 0.0 -> 1.0,动画每次都重新开始执行
-->
0.0,动画反复执行;
* restart为0.0 -> 1.0, 0.0 -> 1.0,动画每次都重新开始执行
-->
1.0 -> 0.0,动画反复执行;
* restart为0.0 -> 1.0, 0.0 -> 1.0,动画每次都重新开始执行
-->
1.0 -> 0.0,动画反复执行;
* restart为0.0 -> 1.0, 0.0 -> 1.0,动画每次都重新开始执行
-->
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
Animation animation=null;
Animation animation2=null;
if (id == R.id.action_alpha) {
animation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.view_anim_alpha);
animation2=new AlphaAnimation(1, 0);
animation2.setRepeatCount(5);
animation2.setDuration(2500);
animation2.setRepeatMode(AlphaAnimation.REVERSE);
img_1.startAnimation(animation2);
}else if(id==R.id.action_rotate){
animation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.view_anim_rotate);
img_1.startAnimation(animation);
}else if(id==R.id.action_scale){
animation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.view_anim_scale);
img_1.startAnimation(animation);
}else if(id==R.id.action_set){
animation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.view_anim_set);
img_1.startAnimation(animation);
}else if(id==R.id.action_translate){
animation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.view_anim_translate);
img_1.startAnimation(animation);
}
return super.onOptionsItemSelected(item);
}
2.通过代码设置动画
private void setAnimation(){
Animation animation1=null;
Animation animation2=null;
Animation animation3=null;
Animation animation4=null;
animation1=new AlphaAnimation(1,0);
animation1.setRepeatCount(2);
animation1.setDuration(2500);
animation1.setRepeatMode(Animation.REVERSE);
animation2=new TranslateAnimation(1, 0, 1, 0, 1, 0, 1, 1);
animation2.setRepeatCount(2);
animation2.setDuration(2500);
animation2.setRepeatMode(Animation.REVERSE);
animation3=new RotateAnimation(0, 720, 1,(float)0.5, 1, (float)0.5);
animation3.setRepeatCount(2);
animation3.setDuration(2500);
animation3.setRepeatMode(Animation.REVERSE);
animation4=new ScaleAnimation((float)1.0, (float)-1.0, (float)-1.0, (float)1.0,
1, (float)0.5, 1, (float)0.5);
animation4.setRepeatCount(2);
animation4.setDuration(2500);
animation4.setRepeatMode(Animation.REVERSE);
}