View动画其实就是使ImageView上的图片在隐藏、旋转、缩放、平移通过动画的过程显示。
布局代码,设置图片要通过src设置
<Button
android:text="透明动画"
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/alpha_image"
android:src="@mipmap/ic_launcher"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Java代码:
final ImageView alpha = (ImageView) findViewById(R.id.alpha_image);
Button button = (Button) findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/**
* AlphaAnimation 透明动画
* RotateAnimation 旋转动画
* ScaleAnimation 缩放动画
* TranslateAnimation 平移动画
* AnimationSet 组合动画
* 第一个参数是开始的透明度
* 第二个参数是结束的透明度
*/
AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f,0.0f);
//设置动画的时间长度
alphaAnimation.setDuration(2000);
//设置重复的类型
alphaAnimation.setRepeatMode(Animation.REVERSE);
//设置重复的次数
alphaAnimation.setRepeatCount(2);
//设置是否停留在最终状态
alphaAnimation.setFillAfter(false);
//让动画执行起来
alpha.startAnimation(alphaAnimation);
}
});
效果图,就几行代码就可以完成了
要注意的一些问题
有些朋友不是使用startAnimation(alphaAnimation)启动的,而是使用下面的方式,会发现有些手机没有反应,这是因为一些手机不支持这种方法。
imageView.setAnimation(alphaAnimation);
alphaAnimation.start();
各种动画的Java代码
这种动画一般分成四类,那么我们就创建一个项目好好玩玩
透明动画
//AlphaAnimation 透明动画
//第一个参数是开始的透明度,第二个参数是结束的透明度,1.0完全透明,0.0完全透明
AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f, 0.0f);
//设置动画的时间长度
alphaAnimation.setDuration(2000);
//设置重复的类型
alphaAnimation.setRepeatMode(Animation.REVERSE);
//设置重复的次数
alphaAnimation.setRepeatCount(2);
//设置是否停留在最终状态
alphaAnimation.setFillAfter(false);
//让动画执行起来
imageView.startAnimation(alphaAnimation);
效果图
旋转动画
//RotateAnimation 旋转动画
//第一个参数是开始的的角度,第二个参数是结束的角度
//第三个参数是旋转中心的X坐标类型,Animation.RELATIVE_TO_SELF 表示自身
//第四个参数是X坐标,0.5f表示X的一半
//第五个参数是旋转中心的坐标类型,Animation.RELATIVE_TO_PARENT 表示父级容器
//第六个参数是Y坐标,0.5f表示X的一半
RotateAnimation rotateAnimation = new
RotateAnimation(0, 360,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_PARENT,0.5f);
//设置动画的时间长度
rotateAnimation.setDuration(2000);
//设置重复的类型
rotateAnimation.setRepeatMode(Animation.REVERSE);
//设置重复的次数
rotateAnimation.setRepeatCount(2);
//设置是否停留在最终状态
rotateAnimation.setFillAfter(false);
//让动画执行起来
imageView.startAnim