我試圖調整視圖的大小以使用ValueAnimator來適合其他視圖的大小。我使用它來代替動畫,因爲我需要之後可以點擊的視圖。使用ValueAnimator將視圖縮放到另一個視圖的大小
private Animator getHeightScaleAnimator(View target) {
ConstraintLayout.LayoutParams thisParams = (ConstraintLayout.LayoutParams) getLayoutParams();
ConstraintLayout.LayoutParams targetParams = (ConstraintLayout.LayoutParams) target.getLayoutParams();
int currentHeight = thisParams.height;
int desiredHeight = targetParams.height;
ValueAnimator animator = ValueAnimator.ofInt(currentHeight, desiredHeight);
animator.addUpdateListener(animation -> {
int newInt = (int) animation.getAnimatedValue();
thisParams.width = newInt;
invalidate();
requestLayout();
});
return animator;
}
上面的代碼示出了其中我試圖增加視圖的高度期望的視圖的高度的方法,以及我對寬度相同的方法,但與寬度而不是高度。
期望的行爲是增加它的大小,直到它像目標視圖一樣大,但由於某種奇怪的原因,視圖移動而不是調整大小。
實現類是ImageView的擴展,但ImageView沒有改變方法。
我還能做些什麼來增加視圖的大小到另一個視圖的大小以動畫方式?
你是否知道[場景和轉變]的(https://developer.android.com/training/transitions/index.html)?你可以使用'android.support.transition'來支持舊設備 – pskink
我看了一下,但不認爲這對我有幫助 – Kerooker
或者我不明白它 – Kerooker