我正在使用一个点九图作为选择器元素的可绘制对象。
点九图如下图所示:
最终呈现的图像如下(模拟器和设备截图,两个设备的分辨率都大于 mdpi):
从图中可以看出,它已经在可伸缩区域外缩放(如 9 patch 文件中定义的那样),较深的绿色条比应有的要厚得多。
为什么会这样,能避免吗?draw9patch 工具可以正确地缩放此图像。这是否与 Android 尝试在高分辨率设备上保持物理尺寸有关?
![9 patch image](https://istack.dev59.com/qQ6AZ.webp)
![resulting rendered image](https://istack.dev59.com/qmfa4.webp)
你只提供了mdpi版本的图片吗?
在Android中,所有不符合正确像素密度的图像都会被缩放。这种情况发生在图像通过9patch进行缩放之前。
这意味着你的图片会被缩放以适应hdpi,并且再次被缩放以适应内容。
要解决此问题,您需要提供hdpi和xhdpi版本的图像。 9patch并不针对不同像素密度而是针对不同的内容/屏幕尺寸。
我查看了你的9-patch图片:
为什么你把未使用区域涂成白色?它应该是透明的。 因为这个原因,它不能被识别为9-patch图片: