缩放ImageButtons以获得多种分辨率

时间:2010-10-04 14:15:09

标签: android imagebutton

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

Panic

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

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

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

2 个答案:

答案 0 :(得分: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设备已经运行了很多屏幕尺寸;这只会在未来大大增加。如果您利用布局管理器和其他此类设施来调整实际屏幕大小,您的应用程序将在所有这些屏幕上运行良好,您几乎不需要任何工作。如果你试图为特定的屏幕尺寸设计图形,你将会反复这样做,直到你无法忍受它为止。

答案 1 :(得分:1)

您可以通过在适当的子目录中为小密度屏幕定义名为layout-small的布局,为所有密度定义layout-normal,为高密度屏幕定义layout-large,为不同的屏幕密度创建不同的布局。

倾角测量适用于此但我不太确定设定的值,我猜你必须尝试一下,找出哪一个最符合你的需求。

您可以找到深入的文章here

编辑:我实际上把它们搞混了......对不起这个混乱。纠正了我上面的答案。

@HardQuestion:以下是Android支持的media formats