Android 线性布局参数

问题描述

我正在尝试在 android 中以编程方式构建视图,但似乎无法实现最终目标。

问题在于不同屏幕的大小不同。我仍然是初学者,我不知道如何解决

解决方法

问题在于不同屏幕的大小不同。

问题是你正在做这样的事情:

iv.setPadding(20,10,20,10);

这会以 像素 为单位设置填充,这在不同的屏幕上是不同的。第一个建议是使用 XML 布局并对其进行扩充,而不是以编程方式创建所有这些视图。它会让你的生活更轻松。

如果您坚持 - 或要求 - 这一切都在代码中完成,您必须忍受您正在按屏幕密度缩放所有值。

final float scale = getResources().getDisplayMetrics().density
int tenDPs = (int) (10 * scale + 0.5f)
iv.setPadding(tenDps * 2,tenDps,tenDPs * 2,tenDPs);

有关详细信息,请参阅 the documentation