当前位置: 代码迷 >> Android >> Android-63-Android中的动画效果
  详细解决方案

Android-63-Android中的动画效果

热度:100   发布时间:2016-04-27 23:34:17.0
Android---63---Android中的动画效果

Android中有四种动画效果:

AlphaAnimation:透明度动画效果

ScaleAnimation:缩放动画效果

TranslateAnimation:位移动画效果

RotateAnimation:旋转动画效果

 

1.透明动画效果

 

 

 

public class MainActivity extends Activity {	private AlphaAnimation aa;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		aa = new AlphaAnimation(1, 0);		aa.setDuration(3000);		// 设置监听事件		aa.setAnimationListener(new AnimationListener() {			@Override			public void onAnimationStart(Animation animation) {				Toast.makeText(MainActivity.this, "start", 0).show();			}			@Override			public void onAnimationRepeat(Animation animation) {				Toast.makeText(MainActivity.this, "repeat", 0).show();			}			@Override			public void onAnimationEnd(Animation animation) {				Toast.makeText(MainActivity.this, "end", 0).show();			}		});		findViewById(R.id.btn).setOnClickListener(new OnClickListener() {			@Override			public void onClick(View v) {				v.startAnimation(aa);			}		});	}}


 

通过xml配置文件 完成该动画效果

创建xml文件:右键res->选择android xml file

 

 

 

 

创建完成之后会在res目录下生成一个anim文件夹

aa.xml:

 

<?xml version="1.0" encoding="utf-8"?><alpha xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="3000"    android:fromAlpha="1"    android:toAlpha="0" ></alpha>


 

Activity中只需要 声明 AlphaAnimation 并在Button的监听事件中 调用

v.setAnimation (AnimationUtils.loadAnimation(MainActivity.this,R.anim.aa));


 

效果是一样的。

 

 

 

2. 缩放动画效果

 

 

 

public class MainActivity extends Activity {	private ScaleAnimation sa;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		sa = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f,				Animation.RELATIVE_TO_SELF, 0.5f);		sa.setDuration(2000);				findViewById(R.id.btn).setOnClickListener(new OnClickListener() {						@Override			public void onClick(View v) {				v.startAnimation(sa);			}		});	}}


 

通过xml文件:

 

<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="2000"    android:fromXScale="0"    android:fromYScale="0"    android:pivotX="50%"    android:pivotY="50%"    android:toXScale="1"    android:toYScale="1" ></scale>


 

3. 位移动画效果

 

 

 

public class MainActivity extends Activity {	private TranslateAnimation ta;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		ta = new TranslateAnimation(0, 200, 0, 200);		ta.setDuration(2000);		findViewById(R.id.btn).setOnClickListener(new OnClickListener() {			@Override			public void onClick(View v) {				v.startAnimation(ta);				// v.startAnimation(AnimationUtils.loadAnimation(				// MainActivity.this, R.anim.ta));			}		});	}}


 

xml:

<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="2000"    android:fromXDelta="0"    android:fromYDelta="0"    android:toXDelta="200"    android:toYDelta="200" ></translate>


 

 

4. 旋转动画效果

 

 

public class MainActivity extends Activity {	private RotateAnimation ra;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		// ra = new RotateAnimation(0, 360);		// ra = new RotateAnimation(0, 360, 50, 150);		ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f,				Animation.RELATIVE_TO_SELF, 0.5f);		ra.setDuration(2000);		findViewById(R.id.btn).setOnClickListener(new OnClickListener() {			@Override			public void onClick(View v) {				v.startAnimation(ra);			}		});	}}


 

 

 

动画混合:

AnimationSet

 

 

 

 

public class MainActivity extends Activity {	AnimationSet as ;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		as = new AnimationSet(true);		as.setDuration(2000);				AlphaAnimation aa = new AlphaAnimation(0, 1);		aa.setDuration(2000);				TranslateAnimation ta = new TranslateAnimation(0, 200, 0, 200);		ta.setDuration(2000);						as.addAnimation(ta);		as.addAnimation(aa);				findViewById(R.id.btn).setOnClickListener(new OnClickListener() {			@Override			public void onClick(View v) {				v.startAnimation(as);			}		});	}}


 

创建Xml文件选择set:

 

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="2000"    android:shareInterpolator="true" >    <alpha        android:fromAlpha="0"        android:toAlpha="1" />    <translate        android:fromXDelta="0"        android:fromYDelta="0"        android:toXDelta="200"        android:toYDelta="200" /></set>


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

  相关解决方案