Android---63---Android中的动画效果
16lz
2021-01-23
Android中有四种动画效果:
AlphaAnimation:透明度动画效果
ScaleAnimation:缩放动画效果
TranslateAnimation:位移动画效果
RotateAnimation:旋转动画效果
1.透明动画效果
public class MainActivity extends Activity {private AlphaAnimation aa;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);aa = new AlphaAnimation(1, 0);aa.setDuration(3000);// 设置监听事件aa.setAnimationListener(new AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {Toast.makeText(MainActivity.this, "start", 0).show();}@Overridepublic void onAnimationRepeat(Animation animation) {Toast.makeText(MainActivity.this, "repeat", 0).show();}@Overridepublic void onAnimationEnd(Animation animation) {Toast.makeText(MainActivity.this, "end", 0).show();}});findViewById(R.id.btn).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {v.startAnimation(aa);}});}}
通过xml配置文件完成该动画效果
创建xml文件:右键res->选择androidxmlfile
创建完成之后会在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;@Overrideprotected 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() {@Overridepublic 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;@Overrideprotected 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() {@Overridepublic 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;@Overrideprotected 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() {@Overridepublic void onClick(View v) {v.startAnimation(ra);}});}}
动画混合:
AnimationSet
public class MainActivity extends Activity {AnimationSet as ;@Overrideprotected 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() {@Overridepublic 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>
更多相关文章
- android 按钮效果的两种实现方法
- 分享Android仿刮奖效果控件
- Android 属性动画实现的扇形菜单效果
- Android用属性动画拖动view到任意位置
- Android 仿IOS解锁锁屏文字抖动效果
- 【Android UI】自定义圆形Loading动画
- android实现uc和墨迹天气那样的左右拖动效果
- Android Textview实现颜色渐变滚动效果
- android 自定义控件实现波浪效果(八)