Android: алгоритм детектирования жестов рефакторинга - PullRequest
0 голосов
/ 10 апреля 2020

Пройдя некоторое время, я смог успешно обнаружить и использовать «масштабный жест». Вот код Kotlin:

// ... snipped ...
var scaleFactor = 1f
val imageEditor = binding.imageEditor
val scaleGestureDetector = ScaleGestureDetector(
    this,
    object : ScaleGestureDetector.SimpleOnScaleGestureListener() {
        override fun onScale(detector: ScaleGestureDetector): Boolean {
            scaleFactor *= detector.scaleFactor
            scaleFactor = scaleFactor.coerceIn(0.1f, 5.0f)

            imageEditor.scaleX = scaleFactor
            imageEditor.scaleY = scaleFactor

            return super.onScale(detector)
        }
    }
)

imageEditor.setOnTouchListener { _, event ->
    scaleGestureDetector.onTouchEvent(event)
}
// ... snipped ...

Но мне интересно, есть ли лучший способ написать предыдущий код. Мне кажется слишком многословным.

Вот целые файлы, если вам интересно:
https://gist.github.com/gchumillas/382b70c1983c15eb55a8e8358553aa66

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...