我正在尝试实现以下功能: - 当有人点击我的图像视图时,它应显示出现在动画中的图像,即从屏幕顶部进入。为此,我遵循以下方法
我有两组代码可以让屏幕上的视图动画不起作用,但只是在视图上调用setTranslationY() 请参阅附加的代码段
imageView.setTranslationY(-2000);
imageView.setImageResource(R.drawable.red);
imageView.animate().translationYBy(2000).setDuration(300);
这有效,但是没有。
imageView.animate().translationYBy(-2000);
imageView.setImageResource(R.drawable.red);
imageView.animate().translationYBy(2000).setDuration(300);
您能否解释一下setTranslateY()与translationYby()之间的行为和差异。
答案 0 :(得分:0)
translationYBy和setTranslationY之间的区别在于,当您点击图像时,第一个会影响图像的动画,而第一个图像会在程序开始运行时影响图像,这意味着如果您定位图像让我们说使用setTranslationY
360,它将在应用程序开头的360处
答案 1 :(得分:0)
来自文档:https://developer.android.com/reference/android/view/ViewPropertyAnimator
translationY
在API级别12中添加 公共ViewPropertyAnimator translationY(浮点值) 此方法将使View的translationY属性动画化为指定的值。已在该属性上运行的动画将被取消。
参数值float:要设置为动画值的值。
translationYBy
在API级别12公共ViewPropertyAnimator中添加 translationYBy(浮点值)此方法将导致视图的 按指定值设置的animationY属性。 已在该属性上运行的动画将被取消。
参数值float:要进行动画处理的数量,以偏移量表示 从当前值开始。
很明显,区别在于参数的含义:对于translationY,它表示绝对位置,对于translationYBy,它表示与当前值的偏移量。