Android: 9-patch 启动画面不会保持纵横比
Android: 9-patch splash screen won't maintain aspect ratio
我知道,这个主题几乎比 Android 本身还早,但我几乎已经看完了每一个 9 补丁教程,但我仍然无法让启动画面保持其纵横比。下面是一个 9 补丁 PNG 图像,从教程中直接复制为一个版本,无论宽高比如何,它都应该使徽标居中而不会拉伸。我已经尝试了所有可能的事情,它只是不断地伸展,例如在 16:9 和 18.5:9 设备之间。我做错了什么?
我在 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);
非常感谢任何帮助,谢谢。
与其将 splash
可绘制对象直接作为 windowBackground
传递,不如尝试将其包含在 layer-list
可绘制对象内的 bitmap
标记中,并将该可绘制对象作为windowBackground
.
您还可以在图层列表中的位图下方绘制纯色作为背景。
background_splash.xml
<?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>
然后将其添加到您的样式中:
<item name="android:windowBackground">@drawable/background_splash</item>
我知道,这个主题几乎比 Android 本身还早,但我几乎已经看完了每一个 9 补丁教程,但我仍然无法让启动画面保持其纵横比。下面是一个 9 补丁 PNG 图像,从教程中直接复制为一个版本,无论宽高比如何,它都应该使徽标居中而不会拉伸。我已经尝试了所有可能的事情,它只是不断地伸展,例如在 16:9 和 18.5:9 设备之间。我做错了什么?
我在 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);
非常感谢任何帮助,谢谢。
与其将 splash
可绘制对象直接作为 windowBackground
传递,不如尝试将其包含在 layer-list
可绘制对象内的 bitmap
标记中,并将该可绘制对象作为windowBackground
.
您还可以在图层列表中的位图下方绘制纯色作为背景。
background_splash.xml
<?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>
然后将其添加到您的样式中:
<item name="android:windowBackground">@drawable/background_splash</item>