我知道,该主题几乎比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);
非常感谢您的帮助。
答案 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>