Android-不同屏幕尺寸的animate()问题

时间:2019-08-09 19:41:53

标签: java android jquery-animate

在不同屏幕尺寸下,animate()遇到此问题。我正在测试s9 +中的所有内容,而当我在Moto g3上测试它们时,我使用animate()。translationY动画设置的布局是一场灾难。 所以我在Google上搜索了一下,当然我是用错误的方式做事。我在这里发现我必须使用这段代码:

Float distance = TypedValue.applyDimension(
                TypedValue.COMPLEX_UNIT_DIP, 770,
                getResources().getDisplayMetrics()
        );

(770)是我的价值。

然后是cardViewBottom.animate().translationY(distance).setDuration(1);

但是我没有一个好的结果。在我的s9 +中770是正确的值,在我的moto g3(较小的设备)中是560。我不知道该怎么办。

1 个答案:

答案 0 :(得分:1)

尝试一下:

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