我在Android中使用9补丁时遇到了这个奇怪的问题,我希望将其用作启动画面。我使用内置的Android Studio插件来创建9补丁,但它对于分辨率太高的图像无法正常工作。
这是我在生成器中做的简化版本(X是黑色像素的符号):
X X
************X
X ************X
************X
****LOGO****X
************X
X ************X
************
XXXXXXXXXX
当我尝试将其用作活动背景时,它的行为类似于普通的位图,而不像9补丁 - 它以原始分辨率显示,并且不适合屏幕。这是XML文件的代码:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@color/colorPrimary"/>
<item>
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/patch_logo"
android:tileMode="disabled"
android:gravity="center"/>
</item>
</layer-list>
我决定将它作为布局的背景进行测试,在这种情况下,我是使用初始设置加载片段的FrameLayout。此图像显示两个预览 - 左侧使用普通png,800x800。右侧是同一图像的9补丁文件。
如您所见,左图刚刚拉伸以适应布局。正确的图像,虽然在预览中它看起来像我使用xml drawable作为活动的背景,在真实的设备上它显示就像使用普通的png - 它只是拉伸。
当我使用500x500图像9-patch时,它在预览时有点太大,但在我的设备上它看起来不错,只是分辨率太低。
所有9个补丁文件都存储在drawable文件夹中,没有指定任何密度。
这是我要使用的徽标logo
我试图整天找到解决方案。我做错了什么?