【问题标题】:Android Splash Screen stretchedAndroid 启动画面拉伸
【发布时间】:2020-01-22 18:02:02
【问题描述】:

我正在尝试使用 this tutorial 通过使用其他主题来创建启动画面。 这是styles.xml中的我的启动器主题:

    <style name="AppTheme.Launcher" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <item name="android:windowBackground">@drawable/ic_launch_screen</item>
        <item name="colorPrimaryDark">@color/color_white</item>
    </style>

这是ic_launch_screen.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/color_white" />
    <item>
        <bitmap android:src="@drawable/ic_splash_screen" />
    </item>
</layer-list>

ic_splash_screen 文件已经是一个 9 补丁文件,如下所示:

在 Android Studio 的 9-patch 预览中显示,如果拉伸,徽标将不会调整大小并且看起来完全对齐。

然而,当我在这种组合中使用它时,启动画面在我的华为和三星上看起来拉伸了,但在像素 2 模拟器上却没有: 华为 Mate 10 Pro 和三星 Galaxy s9+(拉伸方式相同):

在模拟器上看起来很完美:

问题不是因为系统导航。当我像在模拟器中一样使用三键导航时,它在华为上看起来仍然很紧张。

我已经尝试过使用&lt;nine-patch&gt; 元素或gravity:center 属性在ic_launch_screen.xml 中玩耍,但它看起来更加混乱。

【问题讨论】:

  • @tripleee 感谢您的帮助。我怎样才能使图像不那么庞大?我只是点击了图片,然后从我的电脑中挑选了一张。
  • 有四种不同的尺寸可供选择;不幸的是,用户界面无法帮助您发现这一点。见meta.stackoverflow.com/questions/253403/…

标签: android splash-screen


【解决方案1】:

我不确定为什么 9 补丁不能缩放,但我可以提出一个解决方法。您可以创建 2 个可绘制对象,第一个带有文本 pass13,另一个带有徽标。现在您可以创建以下图层列表:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/color_white" />
    <item>
        <bitmap
            android:gravity="center" 
            android:src="@drawable/drawable1" />
    </item>
    <item>
        <bitmap
            android:gravity="center|bottom" 
            android:src="@drawable/drawable2" />
    </item>
</layer-list>

现在它应该可以很好地扩展。

【讨论】:

  • 您的方法效果很好,谢谢。然而,现在我的徽标不清晰,请参见此处:imgur.com/TohqwjD。你有关于如何锐化这些的任何提示吗?如果我使用大于 256 像素的图像尺寸,它会再次缩放。
  • @RenéSpies 你有所有 5 个维度(mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi)的可绘制对象吗?
  • 不,我怎样才能做到这一点?
  • 实现这一点没有捷径可走。设计师使用他们的工具来导出不同维度的资产。此外,如果您的资产为 svg(矢量资产),则在缩放时不会损失质量。
  • 我解决了这个问题。我让我的平面设计师制作 SVG 格式的标志,他照做了。然后我可以使用 Android Studio 中的内置工具通过这个 SVG 文件毫不费力地创建一个矢量资产,现在它看起来很棒。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
相关资源
最近更新 更多