Android:9补丁启动画面无法维持长宽比

时间:2019-12-19 15:45:59

标签: java android nine-patch

我知道,该主题几乎比Android本身古老,但我几乎遍历了每个9补丁教程,但我仍然无法使启动屏幕保持其纵横比。以下是一个9补丁PNG图像,是从教程中按字面复制的一个版本,无论宽高比如何,该徽标都应使徽标居中而不会拉伸。我已经尝试了所有可能的事情,并且它一直在延伸,例如在16:9和18.5:9设备之间。我在做什么错了?

My 9-patch image

styles.xml中的启动器主题:

    <style name="AppTheme.Launcher">
    <item name="android:windowBackground" >@drawable/splash</item>
        <item name="colorPrimaryDark">@android:color/black</item>
    </style>

我的清单指向该主题:

android:theme="@style/AppTheme.Launcher"

我的MainActivity在启动时会切换回常规主题:

 protected void onCreate(Bundle savedInstanceState) {
        setTheme(R.style.AppTheme);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

与其将splash可绘制对象直接作为windowBackground传递,而应尝试将其包含在bitmap可绘制对象的layer-list标签中,然后将该可绘制对象作为{{ 1}}。

您还可以在图层列表的位图下方绘制纯色作为背景。

background_splash.xml

windowBackground

然后以您的样式添加它:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:drawable="@color/gray"/>

    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/splash"/>
    </item>

</layer-list>