如何更改启动画面中图像的大小?

19

我有一个问题,我有一个带图像和背景色的启动画面,但图像呈现非常小,我应该怎么改变它?

这是我的 launch_background.xml:

<?xml version="1.0" encoding="utf-8"?>
<item>
    <bitmap android:gravity="center" android:src="@drawable/splash" />
</item>

如果您知道一种可在Android和IOS上解决此问题的包或方法,那将是完美的。


你是用Flutter做的吗? - Karan Mehta
是的,我使用Flutter。 - luc
查看以下链接,它们将为您提供有关Flutter中闪屏的想法:https://dev59.com/Y7Hma4cB1Zd3GeqPPK_vhttps://medium.com/@vignesh_prakash/flutter-splash-screen-84fb0307ac55 - Sagar Acharya
请尝试查看此问题:https://dev59.com/klcP5IYBdhLWcg3ww8qS#48101776 - Stefano Saitta
1
展示你的启动画面代码。 - Aamil Silawat
你找到设置位图图标大小的方法了吗?我尝试了很多方法,但都没有成功,请帮帮我@LucaMathevet。 - Atul Chaudhary
7个回答

15

我遇到了相同的问题,但是这是我所做的。

我把“center”值改为“fill”

就是这样。

<item>
    <bitmap android:gravity="fill" android:src="@drawable/splash" />
</item>

5
没起作用。 - Mohammad Arif

11

简单:创建更大的标志文件

我之前也遇到了同样的问题,因为我的标志如下图所示,非常小:

为什么?

为什么在“hdpi”、“mdpi”、“xhdpi”、“xxhdpi”、“xxxhdpi”文件夹中的文件像素大小分别为:48、72、96、144、192、512

如何解决?

创建更大的标志文件

在我的情况下,我将上述文件夹中的文件像素大小加倍,因此“hdpi”、“mdpi”、“xhdpi”、“xxhdpi”、“xxxhdpi”文件夹分别像素大小为:88、144、192、288、384、1024。结果是这样的:


2
抱歉,我曾经给你的答案点了踩,但实际上它是对我有用的。 - Friedrick

8
似乎从API 23开始,Android可以通过以下方式实现:
    <item
        android:gravity="center"
        android:drawable="@drawable/logo_splash"
        android:width="100dp"
        android:height="100dp">

但是我不知道这在不同的分辨率和屏幕上会如何显示。

如果您知道一种Android和IOS都能解决的软件包或方法,那就太棒了。 :)

有一个插件似乎可以实现您所需的功能,而无需配置IOSAndroid,请查看https://github.com/henriquearthur/flutter_native_splash

编辑:根据您的问题假设您正在谈论原生闪屏屏幕,而不仅是应用程序的初始页面。


7

您可以像设置应用图标一样进行操作。

将其设置为后台启动器:

<item>
    <bitmap
        android:layout_height="fill_parent"
        android:gravity="center"
        android:src="@mipmap/splash" />
</item>

然后将您的启动图片调整大小,并放入以下对应文件夹中的mipmap中

LDPI:  320x200 px
MDPI: 480x320 px
HDPI: 800x480 px
XHDPI: 1280x720 px
XXHDPI:1600x960 px
XXXHDPI:1920x1280 px

文件夹和代码图像

在此输入图片描述


0

我建议您使用在pub.dev上提供的动画启动屏。 Animated Splash 我在我的应用程序中使用了这个插件,并根据我的需求进行了定制。 在那里,您可以更改图像的大小,并且它是用Dart编写的,因此您可以轻松理解它。 希望能对您有所帮助。


0

你也可以像这样设置所需的高度和宽度:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <color android:color="@color/ic_launcher_background"/>
    </item>

    <item
            android:width="106dp"
            android:height="104dp"
            android:drawable="@drawable/splash"
            android:gravity="center"/>

</layer-list>

-21
尝试像这样做:

Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
          child: Container(
              child: Image.asset(
                  'images/YOUR_IMAGE_URL.png',
                  height: MediaQuery.of(context).size.width / 2.5,
                  width: MediaQuery.of(context).size.width / 2.5,
              )
          ))
     );
  }

@StefanoSaitta 没有必要仅为启动画面使用库,上面的代码就足够了,而且它也是响应式的。 - Karan Mehta
这里OP所询问的是原生启动画面,例如Flutter文档中的这个:https://flutter.dev/docs/development/add-to-app/android/add-splash-screen - Stefano Saitta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接