因此,我使用android:windowBackground
属性实现了启动屏幕。基本上,我有LoginActivity
的样式(应用程序中弹出的第一个屏幕)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyLoginTheme" parent="MyAppTheme">
<item name="android:windowBackground">@drawable/drawable_login_background</item>
</style>
</resources>
我有一个可绘制的drawable_login_background
,它基本上是一个带有图像和蓝色覆盖层的图层列表:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/ic_login_background_xhdpi"/>
</item>
<item>
<color android:color="@color/blueOverlay"/>
</item>
</layer-list>
在三星J7(h1280xw720,xhdpi)上看起来很完美,但在Moto G Play(h1400x720,xhdpi)上看起来还不错。事实是两个设备都是xhdpi,所以我不能使用drawable文件夹来选择不同大小的不同drawable。
有没有一种方法可以根据高度选择不同的可绘制对象?
注意
请注意,windowsBackground属性采用可绘制属性,有些人曾提到使用layout-swWIDTH-shHEIGHT
布局文件夹,但是这些文件夹将根据屏幕高度和大小加载不同的布局。我并不是仅仅为了使用WindowsBackground而使用WindowsBackground,而是使用windowsBackground设置应用程序的样式可以让您更快地显示初始屏幕。
答案 0 :(得分:0)
一个简单的解决方案,我最终将Samsung 1280x720的可绘制对象拖到drawable
文件夹中,将更大的Moto G Play 1440x720的可绘制对象拖到drawable-large
中。我猜想,如果您想区分xhdpi,hdpi等,您只需要在末尾添加限定符即可。
我从未意识到,如果您在Android Studio上的res
文件夹中单击鼠标右键,然后点击Create new Resource Directory
,那么您可以从左侧选择要匹配的限定词并建立目录的名称为你。