繁体   English   中英

如何在Android中为视图的边缘设置动画?

[英]How to animate the edge of a view in Android?

我的UI上有一个ImageView ,我想为其左边缘动画,使其右移:图像本身保持不动,但其左部分变为不可见,显示了下面的视图。 (请考虑CSS中的负边距)。

在此处输入图片说明

我该如何实现?

我真正想要的是这样的前后效果: https : //zurb.com/playground/twentytwenty

我的计划是堆叠2个imageViews,当我在顶部对imageView的边缘进行动画处理时,下面的imageView被部分显示。

只要可以得到效果,除了设置边缘动画之外的其他想法也可以。

首先,您需要创建调整大小的动画,以使视图大小像这样更改

请注意,这是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()使用此代码,需要确保该视图首先可见以计算您的高度/宽度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM