如何用android动画移动/改变对象的方向()

丈夫志四海,万里犹比邻。这篇文章主要讲述如何用android动画移动/改变对象的方向?相关的知识,希望能为你提供帮助。
我试图在android中制作一个简单的“乒乓”应用程序,但我无法找到重复基本动画的模式,如

TranslateAnimation(fromX,toX,fromY,toY);

我想让一个球在屏幕的边界上弹跳,我该如何动态改变方向?
答案首先,对于乒乓球比赛,我强烈建议您使用自定义视图进行渲染。话虽这么说,你可以做的是以编程方式创建你的Animation实例,以便你可以计算x和y值。假设你有一个类似的布局
< ?xml version="1.0" encoding="utf-8"?> < FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> < View android:id="@+id/view" android:layout_width="48dp" android:layout_height="48dp" android:background="#ffff0000" /> < /FrameLayout>

所以你要上下调整View的动画
class MainActivity : AppCompatActivity(), Animation.AnimationListener {private lateinit var view: View private var viewX = 0f private var viewY = 0f private var dstX = 0f private var dstY = 0foverride fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) view = findViewById(R.id.view) startViewAnimation() }private fun startViewAnimation(){ dstX = Random().nextFloat() dstY = if (viewY == 1f) 0f else 1fval animation = TranslateAnimation( Animation.RELATIVE_TO_PARENT, viewX, Animation.RELATIVE_TO_PARENT, dstX, Animation.RELATIVE_TO_PARENT, viewY, Animation.RELATIVE_TO_PARENT, dstY ) animation.duration = 1000L animation.setAnimationListener(this) animation.fillAfter = true view.startAnimation(animation) }override fun onAnimationEnd(animation: Animation?) { viewX = dstX viewY = dstY startViewAnimation() }override fun onAnimationStart(animation: Animation?) = Unit override fun onAnimationRepeat(animation: Animation?) = Unit}

y坐标在0和1之间交替,因为球(正方形)上下上下。 x只是一个随机值。
xy值是父母大小的百分比。
【如何用android动画移动/改变对象的方向()】当动画结束时,您只需使用新的目标坐标开始一个新动画。

    推荐阅读