1

如果我需要android:padding="120dip"根据屏幕大小而有所不同,并且我不想创建其他几个 xml,该怎么办?

<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" >
4

2 回答 2

9

由于您希望一个字符串资源具有不同的值 - 基于不同的屏幕,您可以values像我们拥有文件夹一样创建不同的文件drawable夹:

在此处输入图像描述

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

例如:

我在values文件夹中的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 文件并输入您想要的值。

于 2012-06-14T13:00:53.970 回答
0

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

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

因此,如果您说您想要 100dip 的边距,它将在 ldpi 上为 100px,在 mdpi 上为 150px,在 hdpi 上为 200px,这在视觉上将是相同的大小。

于 2012-06-14T12:53:42.963 回答