代码之家  ›  专栏  ›  技术社区  ›  NeoWang

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

  •  0
  • NeoWang  · 技术社区  · 7 年前

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

    enter image description here

    https://zurb.com/playground/twentytwenty

    1 回复  |  直到 7 年前
        1
  •  3
  •   Mohammad Rbabah    7 年前

    首先,您需要创建调整大小的动画,使视图大小改变如下

    请注意,这是一个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)
    

    因为你像上面的例子一样处理图像视图,所以把图像中的比例类型改为“fit end”

    注意:您不能在中使用此代码 oncreate() 您需要首先确保视图是可见的,以计算高度/宽度