Android 9贴片图像在错误位置缩放
我正在使用一个九块图像作为选择器项目元素的可绘制图像。 九块补丁的图像如下所示: 最终渲染的图像如下(emulator和设备屏幕截图,两个设备的分辨率均大于mdpi): 如您所见,它已在可拉伸区域(如9面片文件中所定义)之外进行缩放,深绿色条的厚度应比它的厚度大得多。Android 9贴片图像在错误位置缩放,android,image,scaling,nine-patch,Android,Image,Scaling,Nine Patch,我正在使用一个九块图像作为选择器项目元素的可绘制图像。 九块补丁的图像如下所示: 最终渲染的图像如下(emulator和设备屏幕截图,两个设备的分辨率均大于mdpi): 如您所见,它已在可拉伸区域(如9面片文件中所定义)之外进行缩放,深绿色条的厚度应比它的厚度大得多。 这是为什么?它可以避免吗?draw9patch工具可正确缩放此图像。这与Android试图在高分辨率设备上保留物理尺寸有关吗?您是否只提供mdpi版本的图像 Android缩放所有像素密度不正确的图像。这发生在通过9patch
这是为什么?它可以避免吗?draw9patch工具可正确缩放此图像。这与Android试图在高分辨率设备上保留物理尺寸有关吗?您是否只提供mdpi版本的图像 Android缩放所有像素密度不正确的图像。这发生在通过9patch缩放图像之前 这意味着您的图像将按比例放大以适应hdpi,然后按比例放大以适应内容
要解决这个问题,您必须提供图像的hdpi和xhdpi版本。9patch不应该针对不同的像素密度和不同的内容/屏幕大小。我查看了您的9补丁: 你为什么把没用过的衣服涂成白色?它应该是透明的。 因此,它未被识别为9Patch:
让我们看一下您绘制图像的代码。白色边框是我个人的最佳做法,因为它避免了几乎透明的像素出现在外部边框上。到目前为止,我从来没有遇到过这个问题。我仔细检查了一下:红色条纹(不管它们是什么意思)也有完全透明的边框。只有一个版本(放在可绘制文件夹中)。看来你概述的过程解释了我面临的问题。太糟糕了,我想我也可以避免为所有这些不同的物理分辨率创建图像。。。