分辨率太大的9补丁并不起作用

时间:2016-10-06 10:30:38

标签: android splash-screen nine-patch

我在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补丁文件。

previews

如您所见,左图刚刚拉伸以适应布局。正确的图像,虽然在预览中它看起来像我使用xml drawable作为活动的背景,在真实的设备上它显示就像使用普通的png - 它只是拉伸。

当我使用500x500图像9-patch时,它在预览时有点太大,但在我的设备上它看起来不错,只是分辨率太低。

所有9个补丁文件都存储在drawable文件夹中,没有指定任何密度。

这是我要使用的徽标logo

我试图整天找到解决方案。我做错了什么?

0 个答案:

没有答案