Попытка запустить анимацию без остановки текущей анимации в Android - PullRequest
0 голосов
/ 04 ноября 2019

Я создаю пользовательский интерфейс, который показывает положение чего-либо и начинает исчезать при вызове функции генерации точки. Но когда исчезает точка, точка исчезает, когда другой вызов функции вызывается из входящего соединения. Как я могу предотвратить исчезновение существующей анимации?

Я хочу попробовать создать некоторую область для рисования новой анимации, когда каждый вызов функции, такой как 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 # я легко справился с добавлением дочерних элементов canvas. Но это выглядит по-другому в Android. Могу ли я получить ссылку решений или кодов?

1 Ответ

0 голосов
/ 05 ноября 2019

Я достиг с добавлением следующих кодов,

  1. Копировать Imageview
    val v : View = activity.findViewById(R.id.DrawRx)
    val iv : ImageView = v as ImageView
    ...

    ...
    var nv : ImageView
    nv = ImageView(iv.context)
Запустить анимацию в скопированном ImageView и использовать addContentView
    activity.runOnUiThread(java.lang.Runnable {
        nv.setImageBitmap(bitmap)
        nv.startAnimation(an)
        activity.addContentView(nv, params)
        ...
    })

params is var params = ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT)

...