为什么“ android:height”不更改图像高度

时间:2019-05-18 08:00:49

标签: android android-layout splash-screen android-styles

在我的启动画面中,我有一幅图像散布在整个屏幕上,因此,该图像看起来不太好-像被拉伸了。

我想通过在“启动画面”样式中添加“ 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为什么影响布局视图而不影响启动画面图片的任何想法?


注意:

我看到this question在谈论针对不同屏幕尺寸的不同图像,但是区别在于我不希望图像散布到整个屏幕上。

1 个答案:

答案 0 :(得分:2)

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

要修复拉伸图像,请尝试此操作。设置背景不是位图,而是设置可绘制对象

<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>

如果所有比例都有位图,它应该看起来不错