我的 Android 应用在 480x800 像素分辨率下看起来很棒,但它在 240x400 像素的 LDPI 屏幕上中断。我知道我可以在活动中获得屏幕的缩放因子,使用它会根据屏幕分辨率getResources().getDisplayMetrics().density
给出确切的值。float
在我的应用程序中,我在其中使用了RelativeLayout
和ImageView
s,并使用 设置了图像的边距setMargins()
,因为此方法使用像素int
作为其顶部、左侧、底部和右侧的值,如何使用我得到的 DPI 因子设置这些值?(这是一个浮动)。我们有Math.floor()
,但我使用像素将图像定位在非常特定的位置,并且方法返回的 DPI 因子在小数位处具有非常具体的值,无法忽略,因此转换为int
对我不起作用。
更新
另外,我lp.setMargins(100,200,0,0);
用来设置边距,我将对其进行哪些修改以使用从设备收到的 DPI 因子?
PS我知道它更像是一个数学问题而不是编程,但我的数学很差,对不起。