@ 9X效果适用于Android 9补丁

时间:2014-06-24 19:07:39

标签: android nine-patch

在iOS上,您可以指定将在像素密度(UIScreen刻度)大于1的位置使用的@ 2x图像。您仍然参考逻辑像素,但图像将使用实际物理像素显示(通常是逻辑像素的4倍。

在Android上,似乎使用dp指定尺寸具有类似的效果。例如,布局如下

    <TextView
        android:layout_width="50dp"
        android:layout_height="25dp"
        android:id="@+id/MessageTextView"
        android:background="@drawable/messageBackground" />

如果图像 messageBackground 的分辨率高于50x25,则平台在密度较高的屏幕上显示时会适当缩放,使用其他像素信息填充增加的像素。 (至少这对我来说是这样的。)

然而,我的问题涉及九个修补图像。这些是基于它们显示的实际大小拉伸的图像。

九个修补的图像我无法弄清楚如何让它们在更高密度的屏幕上“向上扩展”。正如您所期望的那样,九个贴片的扩展部分会拉伸以使图像更大。但是九个补丁的“固定”部分只是使用dp像素显示,而不是实际像素。

有没有办法在九个补丁中使用更高分辨率的图像,这样图像的“固定”部分会以设备的全分辨率显示?我不希望更高的res版本显得更大,我希望它使用所有可用像素显示它的自然尺寸,以获得最佳图像。

1 个答案:

答案 0 :(得分:2)

  

有没有办法在九个补丁中使用更高分辨率的图像,这样图像的“固定”部分会以设备的全分辨率显示?

是。请参阅Android开发者网站上的Providing ResourcesSupporting Multiple Screens文档。

您需要以多种分辨率创建资源,然后只需将它们放入该密度存储桶的相应可绘制文件夹中。

基本上,drawables-mdpi文件夹是用于标准1x资源的文件夹。 drawables-xhdpi是你的2倍。您可能希望以mdpi,hdpi,xhdpi和xxhdpi提供可绘制的内容,以便为绝大多数Android设备提供适当的质量资源。