1.activity_main.xml文件
<!-- 淡入淡出动画按钮直接调用activity定义的alpha()方法 -->
<button
android:id="@+id/btnalpha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignparentleft="true"
android:layout_alignparenttop="true"
android:layout_marginleft="16dp"
android:layout_margintop="22dp"
android:onclick="alpha"
android:text="淡入淡出" />
<!-- 利用软件自带的图片进行测试 -->
<imageview
android:id="@+id/ivpic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerhorizontal="true"
android:layout_centervertical="true"
android:src="@android:drawable/btn_star_big_off" />
<!-- 缩放动画按钮直接调用activity定义的scale()方法 -->
<button
android:id="@+id/btnscale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignbottom="@+id/btnalpha"
android:layout_alignleft="@+id/ivpic"
android:text="缩放"
android:onclick="scale"
/>
<!-- 旋转动画按钮直接调用activity定义的rotate()方法 -->
<button
android:id="@+id/btnrotate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignbaseline="@+id/btnscale"
android:layout_alignbottom="@+id/btnscale"
android:layout_marginleft="15dp"
android:layout_torightof="@+id/btnscale"
android:text="旋转"
android:onclick="rotate"
/>
<!-- 平移动画按钮直接调用activity定义的translate()方法 -->
<button
android:id="@+id/btntranslate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignleft="@+id/btnalpha"
android:layout_below="@+id/btnalpha"
android:layout_margintop="18dp"
android:text="平移"
android:onclick="translate"
/>
<!-- 组合动画按钮直接调用activity定义的combo()方法 -->
<button
android:id="@+id/btncombo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignbaseline="@+id/btntranslate"
android:layout_alignbottom="@+id/btntranslate"
android:layout_alignright="@+id/ivpic"
android:text="组合动画"
android:onclick="combo"
/>
2.mainactivity.java文件
import android.os.bundle;
import android.app.activity;
import android.view.menu;
import android.view.view;
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.imageview;
public class mainactivity extends activity {
//定义图片控件
private imageview ivpic;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
//获取到activity_main.xml文件中的图片控件
ivpic = (imageview) findviewbyid(r.id.ivpic);
}
/**
* 淡入淡出动画方法
*
* @param v
*/
public void alpha(view v) {
// 创建透明度动画,第一个参数是开始的透明度,第二个参数是要转换到的透明度
alphaanimation alphaani = new alphaanimation(0.2f, 1);
//设置动画执行的时间,单位是毫秒
alphaani.setduration(1000);
// 设置动画结束后停止在哪个状态(true表示动画完成后的状态)
// alphaani.setfillafter(true);
// true动画结束后回到开始状态
// alphaani.setfillbefore(true);
// 设置动画重复次数
// -1或者animation.infinite表示无限重复,正数表示重复次数,0表示不重复只播放一次
alphaani.setrepeatcount(10);
// 设置动画模式(animation.reverse设置循环反转播放动画,animation.restart每次都从头开始)
alphaani.setrepeatmode(animation.reverse);
// 启动动画
ivpic.startanimation(alphaani);
}
/**
* 缩放动画
*
* @param v
*/
public void scale(view v) {
//参数1:x轴的初始值
//参数2:x轴收缩后的值
//参数3:y轴的初始值
//参数4:y轴收缩后的值
//参数5:确定x轴坐标的类型
//参数6:x轴的值,0.5f表明是以自身这个控件的一半长度为x轴
//参数7:确定y轴坐标的类型
//参数8:y轴的值,0.5f表明是以自身这个控件的一半长度为x轴
// animation.relative_to_self, 0.5f表示绕着自己的中心点进行动画
scaleanimation scaleani = new scaleanimation(0.2f, 3.0f, 0.2f, 3.0f,
animation.relative_to_self, 0.5f, animation.relative_to_self,
0.5f);
//设置动画执行的时间,单位是毫秒
scaleani.setduration(100);
// 设置动画重复次数
// -1或者animation.infinite表示无限重复,正数表示重复次数,0表示不重复只播放一次
scaleani.setrepeatcount(10);
// 设置动画模式(animation.reverse设置循环反转播放动画,animation.restart每次都从头开始)
scaleani.setrepeatmode(animation.reverse);
// 启动动画
ivpic.startanimation(scaleani);
}
}