为什么"android:height"不改变图片高度

Why does "android:height" does not change the image height

在我的 初始屏幕 中,我的图像遍布整个屏幕,因此图像看起来不太好 - 就像它被拉伸了一样。

我想通过将 "android:height" 属性添加到 启动画面 样式并更改图像高度来解决此问题,但图像仍然被拉伸。

显然,android:height 属性正在影响布局内与 启动画面

相关的所有视图

这是我的启动画面风格:

<style name="splashScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@mipmap/app_icon</item>
    <item name="android:height">100dp</item>
</style>

关于为什么 android:height 影响布局视图而不是 启动画面 图像有什么想法吗?


注:

我看到 谈论不同的屏幕尺寸不同的图像,但不同的是我不希望图像遍布整个屏幕。

您使用 <item name="android:height">100dp</item> 作为 Activity 的根视图。它不是 View class 的实例,它是其他的。而且你不能为它设置高度,Activity 应该匹配可用区域。

要修复拉伸图像,试试这个。设置背景不是位图,而是 drawable

<style name="splashScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/shape_background_splash</item>
</style>

并创建这个可绘制对象

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

如果您有适用于所有比例的位图,它应该看起来不错