簡體   English   中英

Android - animate() 在不同屏幕尺寸下的問題

[英]Android - Problems with animate() in different screen sizes

我在使用不同屏幕尺寸的 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 的值。 我不知道該怎么辦。

嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM