Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
@Android 9-patch的2倍效果_Android_Nine Patch - Fatal编程技术网

@Android 9-patch的2倍效果

@Android 9-patch的2倍效果,android,nine-patch,Android,Nine Patch,在iOS上,您可以指定将在像素密度(UI屏幕比例)大于1的位置使用的@2x图像。您仍然引用逻辑像素,但图像将使用实际物理像素(通常是逻辑像素的4倍)显示 在Android上,似乎使用dp来指定维度也有类似的效果。例如,如以下所示的布局 <TextView android:layout_width="50dp" android:layout_height="25dp" android:id="@+id/MessageTextView"

在iOS上,您可以指定将在像素密度(UI屏幕比例)大于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像素显示,而不是实际像素

有没有一种方法可以使用具有九块补丁的高分辨率图像,从而使图像的“固定”部分以设备的全分辨率显示?我不希望高分辨率的版本只是看起来更大,我希望它显示它的自然大小,使用所有可用的像素为最好的图像

有没有一种方法可以使用具有九块补丁的高分辨率图像,从而使图像的“固定”部分以设备的全分辨率显示

对。请参阅Android开发者网站上的内容和文档

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


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

您可以制作几个9个补丁图像,每个图像的分辨率都合适(以像素为单位,并遵循该分辨率的正确dpi)。将每个9补丁放在其适当的文件夹中(
/res/drawable xyzdpi