1

我有一个按钮,我想占据屏幕的 75%:

恐慌

在 480x800 分辨率的屏幕上,这将是 360 像素宽。
在 280x320 分辨率的屏幕上,这将是 210 像素宽。

如何在我的布局 XML 文件中指定它?

我知道有一个 DIP 测量单位,但这是否也适用于缩放屏幕图像以获得分辨率?我将为此使用什么 DIP 测量值,并且图像是否需要以 160dpi 保存。

4

2 回答 2

2

真的应该通过考虑所有不同的屏幕尺寸和密度等来避免使这变得复杂。

你说你想让你的按钮占据屏幕的 75%。

好的,把它放在一个类似这样的 LinearLayout 中:

<LinearLayout android:layout_width="match_parent"
        android:layout_height="match_parent
        android:orientation="horizontal">

    <My75PercentButton
            android:layout_width="0px"
            android:layout_height="match_parent"
            android:layout_weight="75">

    <View
            android:layout_width="0px"
            android:layout_height="match_parent"
            android:layout_weight="25">

</LinearLayout>

这使得两个视图的宽度为 0,但之后将 75% 的可用空间分配给第一个,25% 分配给第二个。

如果您想让您的按钮伸展以填充该空间(而不是只在其周围留下空白填充),请将其设为 9 补丁。

您还需要支持不同的屏幕密度,因此请在 drawable-ldpi、drawable-mdpi 和 drawable-hdpi 中为您的按钮提供不同的图像尺寸。

但我真的要告诫:试图将自己推入一个为各种特定屏幕尺寸设计图形的世界,最终会受到巨大的伤害。你真的不想那样做。已经有很多屏幕尺寸的 Android 设备正在运行;这只会在未来大大增加。如果您利用布局管理器和其他此类工具来调整实际屏幕大小,您的应用程序将在所有这些屏幕上运行良好,而您几乎不需要做任何工作。如果您尝试为特定的屏幕尺寸设计图形,您将一遍又一遍地这样做,直到您无法忍受为止。

于 2010-10-05T05:50:30.883 回答
1

layout-small您可以通过在称为小密度屏幕、layout-normal所有密度和layout-large高密度屏幕的相应子目录中定义布局来为不同的屏幕密度创建不同的布局。

倾角测量适用于此,但我不太确定要设置什么值,我想您必须尝试一下,找出最适合您需求的值。

您可以在此处找到深入的文章。

编辑:我实际上把它们混为一谈了……很抱歉造成混乱。更正了我上面的答案。

@HardQuestion:以下是 Android 支持的媒体格式

于 2010-10-04T14:23:34.790 回答