在Android中居中背景图像

时间:2010-10-02 23:53:12

标签: android background orientation center

我有一个100 x 100的背景图片,我想在Android应用中居中。有没有办法做到这一点?

我认为这对简单应用的方向更改有很大帮助。

4 个答案:

答案 0 :(得分:45)

您可以在案例中使用BitmapDrawable。在res/drawable文件夹中创建centered.xml:

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/your_image"
    android:gravity="center"/>

然后您可以使用centered drawable作为背景。

答案 1 :(得分:2)

或者,如果您想使用mipmap图片,则应使用item而不是bitmap

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/app_bg_color" />
    <item android:drawable="@mipmap/ic_launcher_round"
    android:gravity="center"/>
</layer-list>

答案 2 :(得分:0)

问题是陈旧的,答案有一个很大的弱点 - 我们没有可能改变图像大小,这意味着它完全取决于我们的绘图。

在使用最新的Android设计库时,活动视图的根将是CoordinatorLayoutDrawerLayout,并且这些布局没有显示层次结构的默认视图,这意味着第一个子视图将被任何下一个视图所掩盖,第二个到第三个,......到最后一个。所以要有居中的背景我们需要添加第一个孩子LinearLayout,其中包含居中的图像。一些代码段:

<android.support.v4.widget.DrawerLayout>
<!-- first child -->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    >
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:src="@drawable/some_background"
        />
</LinearLayout> 
... next view will be above

我们可以完全自定义以LinearLayout重力选项为中心的图像大小。重要的是在LinearLayout的宽度和高度上也有 match_parent ,这要归功于中心也是父视图的中心。

同样的事情可以在RelativeLayout或任何其他允许子视图重叠的布局中完成。

答案 3 :(得分:0)

使用ConstraintLayout,您可以直接设置 background 标签。老实说,花了我几个小时才完成,但这比您想象的要简单得多;)