尝试开始动画而不停止在Android中当前播放的动画

问题描述 投票:0回答:1

我正在制作显示某些位置并在点生成函数调用时开始淡出的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中的工作方式似乎有所不同。我可以获取解决方案或代码的链接吗?

android kotlin android-animation android-imageview
1个回答
0
投票

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

  1. 复制图像视图
    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)

© www.soinside.com 2019 - 2024. All rights reserved.