代码之家  ›  专栏  ›  技术社区  ›  Chris S

缩放多分辨率的图像按钮

  •  1
  • Chris S  · 技术社区  · 14 年前

    Panic

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

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

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   Octavian Helm    14 年前

    您可以为不同的屏幕密度创建不同的布局,方法是在相应的子目录(称为 layout-small 对于小密度屏幕, layout-normal layout-large 用于高密度屏幕。

    倾角测量工作,但我不太确定什么值设置我想你必须尝试一下,找出哪一个最适合你的需要。

    你可以找到一篇深入的文章 here .

    @硬问题:以下是支持的 media formats 对于Android。

        2
  •  2
  •   hackbod    14 年前

    你应该 真正地 试着通过考虑所有不同的屏幕尺寸和密度等来避免这一点变得复杂。

    好吧,把它放在一个线性布局中,有点像这样:

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

    如果你想让你的按钮拉伸来填满这个空间(而不是仅仅在它周围留下空白的填充物),那就把它做成一个9-patch。

    您还需要支持不同的屏幕密度,因此在可绘制ldpi、可绘制mdpi和可绘制hdpi中为按钮提供不同的图像大小。

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