Android: как выровнять 2 изображения на заставке

Я хотел бы использовать экран Splah, содержащий 2 изображения:

  • основное изображение должно быть полностью в центре
  • вторичное изображение должно быть в центре между дном и основным изображением

Ожидаемый рендер выглядит примерно так: ожидаемый всплеск

Но я не вижу, как это получить, и мое второе изображение выровнено снизу: фактический всплеск

XML моего всплеска:

 <?xml version="1.0" encoding="utf-8" ?>
 <layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape android:shape="rectangle">
                <solid android:color="@color/ComplementColor" />
                <padding 
                    android:left="0dip" 
                    android:top="0dip"
                    android:right="0dip" 
                    android:bottom="0dip" />
            </shape>
        </item>
        <item>
            <bitmap android:src="@drawable/main_logo"
               android:gravity="center" />
        </item>
        <item>
            <bitmap android:src="@drawable/secondary_logo"
               android:gravity="bottom" />
        </item>
</layer-list>

3 ответа

Решение

Я наконец выбрал другое решение, близкое к предложенному @Leonardo Cavazzani.

Я добавил поле к нижнему изображению так:

<?xml version="1.0" encoding="utf-8" ?>
  <layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
      <shape android:shape="rectangle">
        <solid android:color="@color/ComplementColor" />
          <padding 
            android:left="0dip" 
            android:top="0dip"
            android:right="0dip" 
            android:bottom="0dip" />
      </shape>
    </item>
    <item>
      <bitmap android:src="@drawable/main_logo"
              android:gravity="center" />
    </item>
    <item
      android:bottom="40dp">
      <bitmap android:src="@drawable/secondary_logo"
              android:gravity="bottom" />
     </item>
  </layer-list>

Установите marginBottom для вашего растрового изображения

<bitmap android:src="@drawable/secondary_logo"
                android:gravity="bottom"
                android:layout_marginBottom="100dp" />

Вы можете достичь этого с помощью LayoutXML вместо Drawable.XML

Простой LayoutManager, в котором первое изображение отцентрировано, а второе выровнено по нижнему краю первого плюс topMargin, решит вашу проблему.

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