java - android 启动画面图像小

标签 java android flutter

我正在使用 flutter 创建 Android 应用程序,启动画面图像很小,请问如何修复

drawable/launch_background.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/splash_background" />

    <!-- You can insert your own image assets here -->
    <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/ic_launcher" />
    </item>
        <item>
        <bitmap
            android:gravity="bottom"
            android:src="@mipmap/bottom_launcher" />
    </item>
</layer-list>

AndroidManifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com...">
    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
         calls FlutterMain.startInitialization(this); in its onCreate method.
         In most cases you can leave this as-is, but you if you want to provide
         additional functionality it is fine to subclass or reimplement
         FlutterApplication and put your custom class here. -->
    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="..."
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>

是什么原因导致图像变小,底部图像消失,只显示小图标,我已将正确的图像和尺寸放入 minmap-hdpi、mdpi 等

enter image description here

expected outcome

最佳答案

嗯,如果您共享启动 Activity 布局(.xml 文件),将会很有帮助。

我相信如果您在两个不同的图层上工作,控制“启动图标”的大小会更容易。有一个可绘制的背景和另一个可绘制的“ Logo ”本身。

在您的启动 Activity 布局上,您可以使用背景图像作为 View 组(LinearLayout、ConstraintLayout...)的背景,并将 Logo 置于其上方。您可以使用“wrap_content”作为 Logo 的宽度和高度,或设置固定大小(以 dp 为单位)。这导致我们遇到两种情况:

如果您的 Logo 使用固定尺寸,则图像在较大的设备上可能看起来像素化。

我建议在 Logo 上使用“wrap_content”,但您的图像在较大的设备上看起来会很小(如屏幕截图所示)。为了避免这种情况,您应该提供不同尺寸的 Logo 并将它们放在以下文件夹中: -drawable-默认图像资源文件夹 - 可绘制-mdpi - 可绘制的 hdpi - 可绘制-xdpi - 可绘制-xxdpi - 可绘制-xxxdpi

较大的设备将使用 xxxdpi 文件夹 较小的设备将使用 mdpi

您可以在此处一次生成所有这些图像尺寸: https://appicon.co/#image-sets

如果设备找不到建议的尺寸的可绘制-...dpi,它将使用默认文件夹中的图像。 (您可以在此处查看更多相关信息:https://developer.android.com/training/multiscreen/screendensities)

你的启动布局应该是这样的:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:gravity="center"
    android:background="YOUR BACKGROUND DRAWABLE HERE"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="wrap_content"
        android:src="YOUR LOGO DRAWABLE HERE"
        android:layout_height="wrap_content"/>

</LinearLayout>

关于java - android 启动画面图像小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61050868/

相关文章:

java - Struts 2 下载文件为 0 字节

java - 谷歌地图 getdirections api - 折线

java - Android map 定制制作者搜索?

Java - Android 应用程序跳过 400 多个帧

android - SQLiteOpenHelper onUpgrade() 混淆Android

java - Android Studio : How to design my own theme?

firebase - Flutter Firebase Auth/Google_sign_in 无法使用 statuscode=CANCELED 登录

java - URL 不存在时出现 SAXParseException

android - 间隔 flutter 后命中api的更好方法

generics - 尝试在父类的Dart中捕获错误