我正在使用响应本机为Android应用程序构建启动画面。初始屏幕由纯色背景和PNG格式的徽标组成。 Splashscreen在新的android版本上可以正常工作,但在android 5(api版本22)上,徽标会显示两次,一次正确,一次扭曲(在整个屏幕上拉伸)。参见最后的屏幕截图。
启动画面是使用npm软件包react-native-splash-screen
设置的,其源代码如下:
res / layout / launch_screen.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/splashscreen"
android:orientation="vertical">
</LinearLayout>
和drawable / splashscreen看起来像这样:
res / drawable / splashscreen.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@color/purple"/>
<item
android:width="257dp"
android:height="33dp"
android:drawable="@mipmap/logo"
android:gravity="center" />
</layer-list>
我尝试了android:gravity
,android:scaleType
和android:tileMode
的几乎所有不同组合,但均未成功。即使我将徽标移动到项目中的<bitmap>
标签,它仍然是相同的。我确实发现,当我将重力支柱更改为其他值时,变形的徽标也会相应移动。但是我不能摆脱它。同样,我也不明白为什么只定义一次徽标就可以看到两次。
任何帮助表示赞赏。谢谢。
答案 0 :(得分:1)
您可以在ImageView
内放置LinearLayout
,然后将LinearLayout
背景设置为@color/purple
,将ImageView
背景设置为@mipmap/logo
,如下所示:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/purple">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@mipmap/logo"
/>
</LinearLayout>