通过一个小Dome来实现,基本的动画功能,渐变、缩放、位移、旋转。
1、通过按钮来实现单一功能,布局文件略;
2、在res文件夹下新建 anim 文件夹(不能随便取名字),anim 下新建xml文件,
(1)alpha渐变:
<span style="font-family:Microsoft YaHei;font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<!-- fromAlpha开始的透明度 -->
<!-- duration完成该动画所需要的时间 -->
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="1000"
></alpha>
</set></span>
(2)scale缩放
<span style="font-family:Microsoft YaHei;font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%"
android:pivotY="50%"
android:fromXScale="1"
android:toXScale="3"
android:fromYScale="1"
android:toYScale="3"
android:duration="1000">
<!-- pivotX、 pivotY缩放的中心坐标
fromXScale X周缩放开始的倍数
toXScale X轴缩放结束的倍数-->
</scale></span>
(3)trans 位移
<span style="font-family:Microsoft YaHei;font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0%"
android:toXDelta="100%p"
android:fromYDelta="0%"
android:toYDelta="100%p"
android:duration="1000">
<!-- fromXDelta 开跑时X轴的位置
toXDelta 跑结束时X轴的位置-->
</translate></span>
(4)rotate旋转
<span style="font-family:Microsoft YaHei;font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000">
<!-- fromDegrees旋转的开始角度
toDegrees旋转结束角度
pivotX、pivotY旋转的中心点的坐标 -->
</rotate></span>
public class MainActivity extends Activity implements OnClickListener {
private Button btnAlpha, btnScale, btnTran, btnRot;
private ImageView imgv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgv =(ImageView) findViewById(R.id.imgv);
btnAlpha = (Button) findViewById(R.id.btnAlpha);
btnScale = (Button) findViewById(R.id.btnScale);
btnTran = (Button) findViewById(R.id.btnTran);
btnRot = (Button) findViewById(R.id.btnRot);
btnAlpha.setOnClickListener(this);
btnScale.setOnClickListener(this);
btnTran.setOnClickListener(this);
btnRot.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Animation anim = null;
switch (v.getId()) {
case R.id.btnAlpha:
anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha);
break;
case R.id.btnScale:
anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.scale);
break;
case R.id.btnTran:
anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.trans);
break;
case R.id.btnRot:
anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate);
break;
default:
break;
}
imgv.startAnimation(anim);
}