如何使初始屏幕图像覆盖屏幕?

时间:2018-07-12 17:43:58

标签: android flutter

我正在尝试通过使用以下可绘制对象使图像覆盖屏幕:

<?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="fill_horizontal|fill_vertical"
            android:src="@drawable/launch_image" />
    </item>
</layer-list>

现在,我不想填充空间(拉伸图像),而是要覆盖它(如CSS3封面所示)。

我看到的每个答案都只能填充或居中图像,真的没有办法吗?

请注意,我正在为此应用程序使用Flutter。

4 个答案:

答案 0 :(得分:1)

您可以在此处找到可用于位图的每个参数:
https://developer.android.com/guide/topics/resources/drawable-resource#XmlBitmap

我认为您要用于重力值的是clip_vertical或clip_horizo​​ntal,并且需要将其与重力的对齐方式之一结合使用:上,左,下,右,center_vertical或center_horizo​​ntal。

您需要使用长宽比最大的图像(21:9)并为其定义底基(图像的主要部分)。底座必须在侧面或中央之一。

示例: 如果要将图像的“底部”放在底部,即使上部被剪裁,底部也会保留重要的内容。 看看下面的图像,第一个是21:9,第二个是剪辑到4:3屏幕中的同一图像。第三张图像是每个主要宽高比如何裁剪图像。

Background 21:9

Background 4:3

enter image description here

相同的想法可用于以4:3的宽高比裁剪图像,您可以在其中保留高度并裁剪宽度。

我希望能回答您的问题。

答案 1 :(得分:-1)

在Flutter中,您可以借助以下代码段实现它。

body:新中心(
         子级:new Image.asset('assets / images / flutter.png'),
       ),

我找到了一个简单的示例here

答案 2 :(得分:-1)

以下代码对我有用。...

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:drawable="@android:color/white" />
     <item>
         <bitmap
             android:gravity="fill"
             android:src="@drawable/launch_image" />
     </item> 
</layer-list>

答案 3 :(得分:-2)

检查Tolyas answer 从API 23开始,可以在“ item”标签内直接设置宽度和高度