@Android 9-patch的2倍效果
在iOS上,您可以指定将在像素密度(UI屏幕比例)大于1的位置使用的@2x图像。您仍然引用逻辑像素,但图像将使用实际物理像素(通常是逻辑像素的4倍)显示 在Android上,似乎使用dp来指定维度也有类似的效果。例如,如以下所示的布局@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"
<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
)