android-discuss icon indicating copy to clipboard operation
android-discuss copied to clipboard

Android 启动背景图怎么适配?【已解决】

Open DevXue opened this issue 7 years ago • 24 comments

APP中启动时为了解决白屏一段时间的问题,加了个背景图上去, 可是在全面屏手机上拉伸很明显, 但是我也在不同的文件夹中放了对应分辨率的图片,可是还是适配不了部分手机, 请问这个背景图该怎么搞呢?

DevXue avatar Jul 11 '18 10:07 DevXue

在 android:windowBackground 中 使用 drawable 资源,通过bitmap 来加载图片资源,然后通过android:gravity="fill" 控制拉伸。避免直接去加载图片显示。

yuminfeng avatar Jul 16 '18 02:07 yuminfeng

@yuminfeng 大兄弟, 我就是在android:windowBackground设置的bitmao来加载图片的, 按照你说的android:gravity="fill"设置成设个属性, 还是适配不了··· 我这里用的三张图片

什么情况 怎么上传不了图片啊!!!!!!!!!!!!!!!!!!!!!

DevXue avatar Jul 16 '18 09:07 DevXue

我都是这样处理的,你相关代码给看看。

yuminfeng avatar Jul 16 '18 10:07 yuminfeng

我把背景图设置到SplashACtivity的 theme中了,

  <style name="Theme.Center" parent="AppTheme">
        <item name="android:windowBackground">@drawable/bg_appbagkground</item>
        <item name="android:windowNoTitle">true</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>
  • bg_appbagkground.xml (也就是bitmap设置背景的xml)
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="fill"
    android:src="@drawable/splash"
    android:tileMode="disabled"
    />

启动就是走的SplashActivity, 就这代码 没有别的了····

另外 drawable/splash 的deawable下有三种类型的图片
drawable-xhdpo 的图尺寸:1080 X 1920 drawable-xxhdpo 的图尺寸:1080 X 2280 drawable-xxxhdpo 的图尺寸:1440 X 2560

DevXue avatar Jul 16 '18 10:07 DevXue

试试 bitmap 放在layer-list 中 里面包裹一下

yuminfeng avatar Jul 16 '18 10:07 yuminfeng

兄弟 能否把你的layer-list 文件发一下!! 还有你用了几张图呢? 分辨率各是多少的?

DevXue avatar Jul 16 '18 13:07 DevXue

我是用.9图把部分可以拉伸的像素拉伸,整体观感保持原有风格. 还有一个项目是把Logo字之类的抠出来,背景单独代码渲染,保证Logo和字不拉伸

kilo-swodh avatar Jul 17 '18 00:07 kilo-swodh

兄弟 这两个方案你觉得哪个好呢? 能否给个简单的Demo??? 我QQ 897902334

DevXue avatar Jul 17 '18 01:07 DevXue

像这样:

2018-07-17 9:15 GMT+08:00 薛 [email protected]:

兄弟 这两个方案你觉得哪个好呢? 能否给个简单的Demo??? 我QQ 897902334

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/android-cn/android-discuss/issues/715#issuecomment-405428158, or mute the thread https://github.com/notifications/unsubscribe-auth/AI-flbhbAQ844kM2rXxmFZhzt5Z1pZsDks5uHTqzgaJpZM4VK4Qq .

5hmlA avatar Jul 17 '18 01:07 5hmlA

@ZuYun 兄弟 你的 drawable/ 下的这个 start_page 有几幅图呢?

DevXue avatar Jul 17 '18 01:07 DevXue

我觉得碘酒图就能应付大部分启动页,当然了,我这个办法仅限本地写死的启动页

kilo-swodh avatar Jul 17 '18 01:07 kilo-swodh

有人在吗?

Fniy avatar Jul 17 '18 01:07 Fniy

我想问个问题

Fniy avatar Jul 17 '18 01:07 Fniy

就是,我刚入行,想学安砖开发,因该怎么下手呢?

Fniy avatar Jul 17 '18 01:07 Fniy

@kilo-swodh @ZuYun 多谢两位兄弟指点!!!

DevXue avatar Jul 17 '18 01:07 DevXue

啊,为什么没有人指点我呢?

Fniy avatar Jul 17 '18 01:07 Fniy

@Fniy http://mars.apkbus.com/ 给你套安卓视频 入门经典!

DevXue avatar Jul 17 '18 01:07 DevXue

@DevXue 多谢一位兄弟指点!!!

Fniy avatar Jul 17 '18 01:07 Fniy

@DevXue 可惜我现在还是apk84的游客,看不到下载链接,不知道注册完会不会发现要vip才能下载

Fniy avatar Jul 17 '18 01:07 Fniy

@kilo-swodh @ZuYun 两位兄弟: 现在用的是:

 <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:gravity="fill">
        <shape android:shape="rectangle">
            <solid android:color="@color/white"/>
        </shape>
    </item>
    <item >
        <bitmap
            android:gravity="center"
            android:src="@drawable/splash"
            android:tileMode="disabled"
            />
    </item>
</layer-list>

但是这种方法 只解决了 全面屏手机, 然而在低分辨率的手机上效果就填充过度了··· 第一张 低分辨率手机启动图 第二种高分辨率手机启动图 eadc4ecf1bf69ee64b59fb7122f8b3f3 960d746c277f545b16c21f0d084b60bd

DevXue avatar Jul 17 '18 02:07 DevXue

@DevXue 这种图还不用碘酒图?让美工弄一下

kilo-swodh avatar Jul 17 '18 03:07 kilo-swodh

@kilo-swodh 解决了,用的就是你说的 layer-list 。 我只保留了 xxhdpi 里头的 为 1080x1920的图! 谢谢你的回答!

DevXue avatar Jul 17 '18 03:07 DevXue

mark 一下,谢楼上各位

T-Tenma avatar Jul 18 '18 05:07 T-Tenma

我按照这个方法,启动页还是没有适配

liuyun1014 avatar Jun 04 '19 02:06 liuyun1014