在不停止当前在Android中播放动画的情况下尝试启动动画

我正在制作显示某些位置并在点生成函数调用时开始淡出的UI。但是,当出现淡出点时,当从入站通信中调用另一个函数调用时,点消失。如何防止现有动画消失?

我想尝试在每个函数调用(例如Thread)失败时创建一些区域来绘制新动画。

这是代码,接收数据时,侦听器调用DrawRxData。 如果函数调用,请绘制并开始动画。

DrawRxData.kt

fun DrawRxData (activity: activity,rxData: RxData) {
    val v : View = activity.findViewById(R.id.DrawRx)
    val iv : ImageView = v as ImageView
    val listView : GridView = activity.findViewById(R.id.list_view)
    var bitmap = Bitmap.createBitmap(v.measuredWidth,v.measuredHeight,Bitmap.Config.ARGB_8888)
    val canvas = Canvas(bitmap)
    val paint = Paint(Paint.ANTI_ALIAS_flaG)
    ...


    ...
    canvas.drawCircle(Xr.toFloat(),Yr.toFloat(),60F,circPaint)

    val an = AlphaAnimation(1.0f,0.0f)
    an.duration = 10000
    an.fillAfter = true
    iv.alpha = 1f
    ...

    ...
    activity.runOnUiThread(java.lang.Runnable {
        iv.setImageBitmap(bitmap)
        iv.startAnimation(an)
        listView.adapter = adapter
        listView.setSelection(idx)
        listView.invalidate()
    })

    return
}

在C#服务器程序中,我通过添加画布子代轻松实现了目标。但它在Android中的工作方式似乎有所不同。我可以获取解决方案或代码的链接吗?

hf2baobei 回答:在不停止当前在Android中播放动画的情况下尝试启动动画

我通过添加以下代码实现了

  1. 复制Imageview
    val v : View = activity.findViewById(R.id.DrawRx)
    val iv : ImageView = v as ImageView
    ...

    ...
    var nv : ImageView
    nv = ImageView(iv.context)
  1. 在复制的Imageview中开始动画并使用addContentView
    activity.runOnUiThread(java.lang.Runnable {
        nv.setImageBitmap(bitmap)
        nv.startAnimation(an)
        activity.addContentView(nv,params)
        ...
    })

paramsvar params = ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.WRAP_CONTENT,ConstraintLayout.LayoutParams.WRAP_CONTENT)

本文链接:https://www.f2er.com/3168010.html

大家都在问