悬浮球动画

以前设计动画时都是通过.xml文件实现的,实现的方法

nim_menu_open = AnimationUtils.loadAnimation(this, R.anim.anim_btn_menu_open);
btn_menu.startAnimation(anim_menu_open);
,但是通过这种方式实现后再实现点击效果就会比较麻烦(个人觉得),因为执行完动画后该对象的位置其实是没有移动的,动画执行的可以说是该对象的快照(除非没有执行位置变化的动画,否则不能直接点击)。现在直接在.java文件中改变对象的属性,Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。本文使用Property Animation动画类型中的ObjectAnimator 类,实现平移、旋转等等,效果如下



github源码库地址:https://github.com/zoipuus/Suspended-Ball

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是一个简单的悬浮动画效果的实现方法: 1. 在布局文件中添加一个 ImageView 作为悬浮,并设置其初始位置和大小。 ```xml <ImageView android:id="@+id/floating_ball" android:layout_width="80dp" android:layout_height="80dp" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:src="@drawable/floating_ball" android:layout_gravity="top|start" /> ``` 2. 在代码中定义两个动画:一个是悬浮向上移动的动画,一个是悬浮向下移动的动画。 ```java // 向上移动的动画 Animation upAnimation = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, -1f); upAnimation.setDuration(500); // 向下移动的动画 Animation downAnimation = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, -1f, Animation.RELATIVE_TO_SELF, 0f); downAnimation.setDuration(500); ``` 3. 在悬浮上添加点击事件,当点击时播放向上移动的动画;再次点击时播放向下移动的动画。 ```java ImageView floatingBall = findViewById(R.id.floating_ball); floatingBall.setOnClickListener(new View.OnClickListener() { boolean isUp = false; @Override public void onClick(View v) { if (isUp) { v.startAnimation(downAnimation); isUp = false; } else { v.startAnimation(upAnimation); isUp = true; } } }); ``` 这样就完成了一个简单的悬浮动画效果。当用户点击悬浮时,它会向上移动一段距离;再次点击时,它会向下移动回到原来的位置。你可以根据实际需求修改动画的属性,比如移动距离、动画时长等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zoipuus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值