android Tween Animations(动画效果-代码实现)的使用
16lz
2021-01-26
程序功能:
程序中有四个按钮(Alpha, Scale, Rotate, Translate)和一个图片:
分别点击四个按钮,则图片和对应的按钮分别执行:淡入淡出、缩放、旋转、移动动画效果。
代码如下:
AppMain.java
package lxy.litsoft;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.view.animation.AnimationSet;import android.view.animation.RotateAnimation;import android.view.animation.ScaleAnimation;import android.view.animation.TranslateAnimation;import android.widget.Button;import android.widget.ImageView;public class AppMain extends Activity {//声明对象private ImageView imageView;private Button btAlpha;private Button btScale;private Button btRotate;private Button btTranslate; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //实例化对象 imageView = (ImageView)findViewById(R.id.imageView01); btAlpha = (Button)findViewById(R.id.button01); btAlpha.setOnClickListener(new ButtonListener()); btScale = (Button)findViewById(R.id.button02); btScale.setOnClickListener(new ButtonListener()); btRotate = (Button)findViewById(R.id.button03); btRotate.setOnClickListener(new ButtonListener()); btTranslate = (Button)findViewById(R.id.button04); btTranslate.setOnClickListener(new ButtonListener()); } class ButtonListener implements OnClickListener{public void onClick(View v) {if(v.getId() == R.id.button01){//Alpha:淡入淡出效果//创建AnimationSet对象AnimationSet animationSet = new AnimationSet(true);//从透明度1,到透明度0AlphaAnimation alphaAnimation = new AlphaAnimation(0,1);//动画执行时间alphaAnimation.setDuration(1000);//把动画添加到动画集中animationSet.addAnimation(alphaAnimation);//把动画绑定控件imageView.startAnimation(animationSet);btAlpha.startAnimation(animationSet);} else if(v.getId() == R.id.button02){//Scale:缩放效果AnimationSet animationSet = new AnimationSet(true);ScaleAnimation scaleAnimation = new ScaleAnimation(1,1,0,1,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);scaleAnimation.setDuration(1000);animationSet.addAnimation(scaleAnimation);imageView.startAnimation(animationSet);btScale.startAnimation(animationSet);} else if(v.getId() == R.id.button03){//Rotate:旋转效果AnimationSet animationSet = new AnimationSet(true);RotateAnimation rotateAnimation = new RotateAnimation(0f,360f,//旋转角度的变化范围Animation.RELATIVE_TO_SELF, 0.5f,//旋转中心X的位置确定Animation.RELATIVE_TO_SELF,0.5f);//旋转中心Y的位置确定rotateAnimation.setDuration(1000);animationSet.addAnimation(rotateAnimation);//imageView.startAnimation(animationSet);btRotate.startAnimation(animationSet);}else if(v.getId() == R.id.button04){//Translate:移动效果AnimationSet animationSet = new AnimationSet(true);TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1,Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,1,Animation.RELATIVE_TO_SELF,0);translateAnimation.setDuration(1000);animationSet.addAnimation(translateAnimation);imageView.startAnimation(animationSet);btTranslate.startAnimation(animationSet);}} }}main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <LinearLayout android:orientation="vertical" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/imageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="150dip" android:layout_marginLeft="200dip" android:src="@drawable/icon"></ImageView> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/button01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Alpha"></Button><Button android:id="@+id/button02" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Scale"></Button><Button android:id="@+id/button03" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Rotate"></Button><Button android:id="@+id/button04" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Translate"></Button> </LinearLayout></LinearLayout>
另外:
Tween Animations的通用属性
1.setDuration(long durationMills);//设置动画执行事件(单位:毫秒)
2.setFillAfter(boolean fillAfter);//如果fillAfter的值为true,则动画执行后,
控件将停留在执行结果的状态
3.setFillBefore(boolen fillBefore);//如果fillBefore的值为true,则动画执行后,
控件将回到动画执行之前的状态
4.setStartOffSet(long startOffSet);//设置动画执行之前的等待时间
5.setRepeatCount(int repeatCount);//设置动画重复执行的次数
更多相关文章
- 【Android(安卓)Developers Training】 57. 在UI线程之外处理图
- 简单明了 的java、android线程池
- Android(安卓)实现截图功能
- Android下的Gallery显示技术分析(三)
- VectorDrawable兼容笔记
- Android(安卓)自定义View实现动画形式加载环形图
- Android(安卓)Animation动画 本文纯属抄袭 如何雷同本人一概无责
- 编译Android下纯C的静态程序,undefined reference to raise
- 【Android】 Activity Lifecycle