我的UI上有一个ImageView
,我想动画其左边缘向右移动:图像本身保持不动,但其左侧部分不可见,显示了下方的视图。 (请考虑CSS中的负边距)。
我该如何实现?
我实际上想要的是这样的前后效果: https://zurb.com/playground/twentytwenty
我的计划是堆叠2个imageViews,当我在顶部对imageView的边缘进行动画处理时,下面的imageView被部分显示。
只要可以得到效果,除了为边缘设置动画之外的其他想法也是可以的。
答案 0 :(得分:3)
首先,您需要创建调整大小的动画,以使视图大小像这样
请注意,这是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()
中使用此代码,您需要确保该视图首先可见以计算高度/宽度