我在使用不同屏幕尺寸的 animate() 時遇到了這個問題。我在我的 s9+ 中測試所有內容,當我在 Moto g3 上測試相同內容時,我使用 animate().translationY 設置動畫的布局是一場災難。所以我在谷歌上搜索了一下,當然我是以錯誤的方式做事的。我在這里發現我必須使用這段代碼:Float distance = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 770,
getResources().getDisplayMetrics()
);(770)是我的價值。進而cardViewBottom.animate().translationY(distance).setDuration(1);但我沒有取得好成績。在我的 s9+ 中,770 是正確的值,而在我的 moto g3(較小的設備)中,該值是 560。我不知道該怎么辦。
1 回答

溫溫醬
TA貢獻1752條經驗 獲得超4個贊
嘗試這個:
val metrics = DisplayMetrics()
windowManager?.defaultDisplay?.metrics(metrics)
val width = metrics.density
val distance = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, width,
resources.displayMetrics)
不確定 TypedValue.applyDimension 的參數是什么 如果你需要像素那么metrics.widthPixels
添加回答
舉報
0/150
提交
取消