【问题标题】:Padding in different phones在不同的手机中填充
【发布时间】:2011-03-20 07:26:21
【问题描述】:

假设我添加了一个顶部填充为 20 的线性布局。这是否意味着该布局在所有手机中都以 20 像素的填充呈现?还是根据手机的高度/宽度/密度缩放?

【问题讨论】:

    标签: android android-layout android-linearlayout padding


    【解决方案1】:

    Java 代码在所有设备上都是像素。如果你想让它的密度受到尊重(比如使用 20dp 或 20dip),那么你可以使用:

    float density = context.getResources().getDisplayMetrics().density;
    setPadding(20 * density, blah, blah, blah);
    

    该密度变量在中型手机上为 1.0,或多或少取决于屏幕的密度。

    【讨论】:

    • 你不能将 float 传递给 setPadding,确保使用 Math.round() 将其转换为最接近的 int。
    【解决方案2】:

    这取决于您定义填充的准确程度。如果在你的布局文件中你写了例如

    android:paddingTop="20px"

    那么是的,每台设备都是 20 像素。

    【讨论】:

    • 我在代码中这样做,所以我正在设置 layout.setPadding(0, 20, 0, 0);
    • 嗯,好的。抱歉没听懂。我假设这是每个设备上的像素,但我会等待其他答案;)
    猜你喜欢
    • 2019-10-19
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    相关资源
    最近更新 更多