值取决于屏幕大小

时间:2012-06-14 12:47:52

标签: android

如果根据屏幕尺寸需要android:padding="120dip"不同,我不想创建其他几个xmls,该怎么办?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/right_back"
    android:orientation="horizontal"
    android:padding="120dip" >

2 个答案:

答案 0 :(得分:7)

如果您想要一个字符串资源的不​​同值 - 基于不同的屏幕,您可以创建不同的values文件夹,就像我们拥有drawable个文件夹一样:

enter image description here

在所有文件夹中,创建 dimens.xml ,并确保在每个文件中给出相同的变量名称但不同的值。

例如:

文件夹中的 dimens.xml 类似于:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="padding_val">100dp</dimen>
</resources>

现在,您只需要提及android:padding="@dimen/padding_val"

但这仅适用于values文件夹,创建相同的dimens.xml文件并放置您想要的值。

答案 1 :(得分:0)

Dip(与密度无关的像素)与屏幕尺寸无关,这意味着,如果您定义了120dip的边距,则每个屏幕尺寸上的边距将相等。

DIP表示:px *密度因子,例如:在ldpi上,因子是1.0,在mdpi 1.5和hdpi 2.0

因此,如果你想要100d的余量,它将是ldpi上的100px,mdpi上的150px和hdpi上的200px,这在视觉上是相同的大小。