Почему «android:height» не меняет высоту изображения

В моем Заставка у меня изображение растекается по всему экрану и из-за этого изображение выглядит не очень хорошо - как будто растянулось.

Я хотел исправить это, добавив атрибут «android:height» в стиль Заставка и изменив высоту изображения, но изображение остается растянутым.

По-видимому, атрибут android:height влияет на все представления внутри макета, связанные с Заставка.

Это мой стиль для заставки:

<style name = "splashScreenTheme" parent = "Theme.AppCompat.Light.NoActionBar">
    <item name = "android:windowBackground">@mipmap/app_icon</item>
    <item name = "android:height">100dp</item>
</style>

Есть идеи, почему android:height влияет на вид макета, а не на изображение Заставка?


Примечание:

Я видел, как этот вопрос говорил о разных изображениях для разных размеров экрана, но разница в том, что я не хочу, чтобы изображение распространялось по всему экрану.

свойство, которое вы ищете, это android:layout_height, а не android:height, попробуйте это свойство.

raj kavadia 18.05.2019 10:22

@rajkavadia спасибо, но это не сработало

Tamir Abutbul 18.05.2019 10:24

Фон окна темы не имеет механизма для установки размера изображения или типа масштаба. Ваша потребность может быть реализована developer.android.com/guide/topics/resources/…. Использование опции центра может помочь вам.

Tshunglee 18.05.2019 10:33
0
3
109
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы используете <item name = "android:height">100dp</item> для корневого просмотра Activity. Это не экземпляр класса View, это что-то еще. И вы не можете установить для него высоту, активность должна соответствовать доступной области.

Чтобы исправить растянутое изображение, попробуйте это. Установите фон не растровое изображение, а рисуемое

<style name = "splashScreenTheme" parent = "Theme.AppCompat.Light.NoActionBar">
    <item name = "android:windowBackground">@drawable/shape_background_splash</item>
</style>

и создайте этот рисунок

<?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 = "center"
            android:src = "@mipmap/app_icon"/>
    </item>
</layer-list>

если у вас есть растровое изображение для всех масштабов, оно должно выглядеть хорошо

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