Как избежать масштабирования фона, который можно рисовать

Моя стартовая активность имеет тему @style/AppTheme.Launcher.

<layer-list xmlns:android = "http://schemas.android.com/apk/res/android" android:opacity = "opaque">

    <item android:drawable = "@color/colorPrimary" />

    <item>
        <bitmap android:src = "@drawable/my_logo" android:gravity = "center" />
    </item>

</layer-list>

Когда моя деятельность начинается, я получаю сообщение об ошибке:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: my.package, PID: 23108
              java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.package/my.package.MainActivity}: android.content.res.Resources$NotFoundException: Drawable my.package:drawable/launch_screen with resource ID #0x7f060059

ОБНОВЛЕНИЕ 1

<resources>

    ...

    <style name = "AppTheme.Launcher" parent = "AppTheme">
        <item name = "android:windowBackground">@drawable/launch_screen</item>
    </style>


</resources>

Моя деятельность начинается с этой темы.

Разместите свой XML-файл с дизайном

Mayur Patel 17.08.2018 14:45

@MayurPatel обновлен

EvgenyNaumov 17.08.2018 14:53
0
2
132
2

Ответы 2

Вместо:

<item>
    <bitmap android:src = "@drawable/my_logo" android:gravity = "center" />
</item>

попробуйте:

<item>
    <bitmap  app:srcCompat = "@drawable/my_logo" android:gravity = "center" />
</item>

или:

<item
    app:srcCompat = "@drawable/my_logo" android:gravity = "center" />

Вы уверены, что launch_screen.xml находится в папке res/drawable в вашем основном пакете?
Вы создавали разные папки, например drawable-v21?
Сообщение об ошибке:

Resources$NotFoundException: Drawable my.package:drawable/launch_screen

если бы launch_screen.xml был там, где он должен быть, ваше приложение будет работать нормально.
В крайнем случае: очистите и перестройте свой проект.

Если я поставлю <item android:drawable = "@drawable/my_logo" /> вместо <item><bitmap android:src = "@drawable/my_logo" android:gravity = "center" /></item>, все будет в порядке, кроме растянутого изображения

EvgenyNaumov 17.08.2018 15:14

Если я поставлю my_logo.png вместо my_logo.xml все ок

EvgenyNaumov 17.08.2018 15:39

Вы можете использовать drawable для добавления образа в layer - list. попробуйте это, надеюсь, это поможет вам. Если нет, дайте мне знать.

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

Это не работает. Там написано здесьЧтобы избежать масштабирования, в следующем примере используется элемент <bitmap> с центрированной гравитацией.

EvgenyNaumov 17.08.2018 19:38

Другие вопросы по теме