Как оживить край представления в Android? - PullRequest
0 голосов
/ 20 сентября 2018

У меня на пользовательском интерфейсе ImageView, я хочу анимировать движение его левого края вправо: само изображение остается неподвижным, но его левая часть становится невидимой, показывая вид снизу.(Подумайте об отрицательном значении в CSS).

enter image description here

Как мне этого добиться?

Что я хочу на самом деле, это До-После-Послеэффект как это: https://zurb.com/playground/twentytwenty

Мой план состоит в том, чтобы сложить 2 imageViews, когда я анимирую край imageView наверху, imageView ниже показывается частично.

Идеи, кроме анимации края, также хороши, если я могу получить эффект.

1 Ответ

0 голосов
/ 20 сентября 2018

во-первых, вам нужно создать анимацию изменения размера, которая изменяет размер вида следующим образом

обратите внимание, что это код Kotlin, и это высокое изменение, если вам нужна ширина, вам нужно заменить представление

 class ResizeAnimation(var view: View, val targetHight: Int) : Animation() {
    val startWidth: Int = view.height

     override fun applyTransformation(interpolatedTime: Float, t: Transformation) {
        val newHight = (startWidth + (targetHight - startWidth) * interpolatedTime).toInt()
        view.layoutParams.height = newHight
        view.requestLayout()
    }


    override fun willChangeBounds(): Boolean {
        return true
    }
}

следующий в вашей деятельности назовите его как любой другой пример анимации

val anime = ResizeAnimation(view, commentViewHight)
            anime.duration = 250
            anime.fillAfter =true
            view.startAnimation(anime)

, так как вы имеете дело с просмотром изображения Как в примере выше, измените тип масштаба в вашем изображении на «подходящий конец»

обратите внимание, что вы не можете использовать этот код в oncreate(), вам нужно убедиться, что вид сначала виден, чтобы вычислить вашу высоту / ширину

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