Android的View动画

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值