我通过更改
制作启动画面<style name="Theme.Transparent" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/background_splash</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
主题的属性。
这个drawable / background_splash看起来像这样
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<item android:drawable="@color/colorPrimary"/>
<item>
<bitmap
android:src="@drawable/ic_logo_black"
android:gravity="center"/>
</item>
</layer-list>
对于我的启动器活动,它会在后面进行一些计算,然后有条件地导航到其他活动。此计算需要服务器,因此它将保留此活动一段时间。
为了让体验更好,我希望此活动与启动画面看起来一样。
所以我基本上是为布局做了这个。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_splash"
android:orientation="vertical">
</RelativeLayout>
但是,使用此设置。我注意到一旦从启动画面到启动器活动,徽标向上移动了大约5-10像素。
我的问题是,我能做些什么让这种转变完全消失?我显然可以硬编码一些边缘。但我不确定这是否适用于所有设备尺寸。
反正5-10px的转变是什么?我基本上使用了确切的图像作为布局中的背景。
我注意到如果我没有为splashActivity布局设置任何背景,则此问题已得到解决。但我仍然喜欢背景,因为在我的用户工作流程中,用户可能会被重定向到此屏幕。我不希望他们看到空白的空白屏幕= /
答案 0 :(得分:0)
将image
与ImageView
联系起来总是更好,更安全。
在Splash
和Launcher
活动中,ImageView
内RelativeLayout
并将scaleType
设置为centerCrop
答案 1 :(得分:0)
正如here
所解释的那样 android:background
是视图组件的背景颜色(可绘制为精确),而android:windowBackground
是视图所在的窗口(活动或对话框)的背景颜色。所以这可能是5px填充背后的原因之一。 (我不确定)。
另一方面,您可以通过执行以下操作动态设置启动器活动的主题:
public void onCreate(Bundle savedInstanceState) {
setTheme(android.R.style.Theme);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
请记住在setTheme
super.onCreate
答案 2 :(得分:0)
我没有为我的SplashActivity设置任何背景图片而离开了。
然后它是透明的,并且看到了初始窗口背景。
答案 3 :(得分:0)
谢谢您的提问!
我找到了一种方法,将'drawable / background_splash'更改为
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<item>
<color android:color="@color/colorPrimary" />
</item>
<item android:bottom="48dp">
<bitmap
android:src="@drawable/ic_logo_black"
android:layout_width="wrap_content"
android:tileMode="disabled"
android:layout_height="wrap_content"
android:scaleType="fitCenter"/>
</item>
</layer-list>
似乎未绑定初始布局中的条高(48dp)!