【问题标题】:Android: how to align 2 images on a splash screenAndroid:如何在初始屏幕上对齐 2 个图像
【发布时间】:2018-02-25 00:27:12
【问题描述】:

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

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

预期的渲染是这样的:

但我不知道如何得到这个,我的第二张图片是底部对齐的:

我的初始 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>

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 但它不是一个好的解决方案,因为它会给不同的设备分辨率带来问题。
    【解决方案2】:

    为您的位图设置 marginBottom

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

    【讨论】:

    • 感谢您的回复,但这不起作用。在 XML 编辑器中,我收到警告“未声明属性”,当我启动应用程序时,它没有任何改变。
    【解决方案3】:

    您可以通过 LayoutXML 而不是 Drawable.XML 来实现它

    一个简单的 LayoutManager,其中第一个图像居中,第二个对齐到第一个加上 topMargin 的底部可以解决您的问题。

    【讨论】:

    • 我不明白你在说什么...我需要用LinearLayout 替换layer-list 吗?或者你有样品吗?
    • 是的,我就是这个意思
    猜你喜欢
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    相关资源
    最近更新 更多