Прикрепить изображение к нижней части обзора? - PullRequest
0 голосов
/ 05 октября 2019

Я спроектировал заставку в Adobe XD, как показано: введите описание изображения здесь

Теперь, когда я экспортировал части изображения в Android Studio, я не смог сделать всеизображения придерживаются дна, как в XD. введите описание изображения здесь

Может кто-нибудь сказать мне, как я поступил бы, и был бы лучшим ViewGroup для такой задачи?

Вот мой XML-файл:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/gradient"
    tools:context=".MainActivity">


    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:src="@drawable/group_1"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0" />

</LinearLayout>

1 Ответ

0 голосов
/ 05 октября 2019

Это можно сделать с помощью ViewGroup. Но проблема не в группе представления - проблема в том, что у вас есть одно изображение для всего контента - это плохая практика.

Должно быть как минимум 2 изображения - одно для фона, а другоедля контента.

Это связано с проблемой фрагментации экранов устройства - слишком много разных разрешений, форматов изображения и dpis, чтобы одно изображение работало на всех них должным образом.

Я будупоказать вам пример на основе вашего пользовательского интерфейса с фоном и логотипом с маленькими изображениями под логотипом. Вам просто нужно разделить его на два файла - фон может быть jpg, но логотип должен быть png с прозрачностью. Если вы это сделаете - вот как должна выглядеть ваша раскладка.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/background"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:src="@drawable/bg" />

    <ImageView
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:adjustViewBounds="true"
        android:padding="24dp"
        android:src="@drawable/logo" />

</FrameLayout>

Возможно, вы захотите поэкспериментировать с android:padding и android:scaleType для достижения наилучшего результата.

Редактировать

Изменено android:layout_height="match_parent" на android:layout_height="wrap_content" - так будет работать лучше

Надеюсь, это поможет.

...