Android:如何在启动画面上对齐2个图像

时间:2017-09-15 18:54:37

标签: android image bitmap splash-screen android-gravity

我想使用包含2张图片的splah屏幕:

  • 主图像必须完全居中
  • 次要图像必须位于底部和主图像之间的中心

预期的渲染是这样的: expected splash

但是我没有看到如何得到这个,我的第二张图片是底部对齐的: actual splash

我的知识分子的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 个答案:

答案 0 :(得分:7)

我终于选择了接近@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>

答案 1 :(得分:1)

为您的位图设置marginBottom

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

答案 2 :(得分:1)

您可以通过LayoutXML而不是Drawable.XML

来实现它

一个简单的LayoutManager,第一个图像居中,第一个加上topMargin的第二个alignToTheBottom解决了你的问题。