Я хочу масштабировать маркер на карте Google, мой код работает, но на некоторых устройствах маркер несколько раз исчезает. Кто-нибудь знает, как плавно масштабировать?
Я попробовал использовать ValueAnimator для установки значок маркера:
val choreographer = Choreographer.getInstance()
val desiredFrameRate = 20
val frameInterval = 1000L / desiredFrameRate
var lastFrameTime = 0L
val widthAnimator = ValueAnimator.ofFloat(anim.fromX, anim.toX)
widthAnimator.duration = anim.duration
widthAnimator.repeatMode = anim.repeatMode
widthAnimator.repeatCount = anim.repeatCount
val heightAnimator = ValueAnimator.ofFloat(anim.fromY, anim.toY)
heightAnimator.duration = anim.duration
heightAnimator.repeatMode = anim.repeatMode
heightAnimator.repeatCount = anim.repeatCount
val animatorUpdateListener = ValueAnimator.AnimatorUpdateListener {
val currentTime = System.currentTimeMillis()
if (currentTime - lastFrameTime < frameInterval) {
return@AnimatorUpdateListener
}
lastFrameTime = currentTime
choreographer.postFrameCallback { choreographerTime ->
val scaleX =
BigDecimal((widthAnimator.animatedValue as Float).toDouble()).setScale(
3,
RoundingMode.HALF_EVEN
).toFloat()
val scaleY =
BigDecimal((heightAnimator.animatedValue as Float).toDouble()).setScale(
3,
RoundingMode.HALF_EVEN
).toFloat()
marker.setIcon(
createScaledBitmapDescriptor(
viewToDrawable(target), scaleX, scaleY
)
)
}
}
heightAnimator.addUpdateListener(animatorUpdateListener)
animations.apply {
add(widthAnimator)
add(heightAnimator)
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... p-smoothly
Как плавно масштабировать маркер на карте Google? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение