添加背景图像的最佳做法是哪种?

时间:2018-03-29 14:11:21

标签: android android-layout

这是将图片背景设置为LinearLayout的最佳方法:将背景设置为LinearLayout或将FlaLayout中的LinearLayout包含在内并将ImageView添加为第一个Child?

详细信息:

我的目标是获得类似下面附图的用户界面。

enter image description here

我通过以下两种方式获得了这个UI。 有人可以解释哪些是最好的方式(在性能和记忆方面)?

第一种方法:将背景设置为LinearLayout

<LinearLayout
android:id="@+id/layout_age"
android:layout_width="95dp"
android:layout_height="95dp"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/profile_detail_bg">

<ImageView android:layout_width="45dp"
    android:layout_height="35dp"
    android:layout_gravity="center"
    android:src="@drawable/person_age"/>

<TextView
    android:id="@+id/age"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="sans-serif"
    android:layout_gravity="center"
    android:text="25"
    android:textColor="@color/white"
    android:textSize="22sp" />
</LinearLayout>

第二种方法:使用FrameLayout和ImageView

<FrameLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageView android:layout_width="95dp"
        android:layout_height="95dp"
        android:src="@drawable/profile_detail_bg"/>

    <LinearLayout
        android:id="@+id/layout_age"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:orientation="vertical">

        <ImageView android:layout_width="45dp"
            android:layout_height="35dp"
            android:layout_gravity="center"
            android:src="@drawable/person_age"/>

        <TextView
            android:id="@+id/age"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="sans-serif"
            android:layout_gravity="center"
            android:text="25"
            android:textColor="@color/white"
            android:textSize="22sp" />
    </LinearLayout>
</FrameLayout>

1 个答案:

答案 0 :(得分:1)

第一个可能更标准,但它有局限性(例如,您不能指定缩放)。您应该尝试一下,如果无法获得所需效果,请转到第二步。就性能和内存而言,第一个会稍微好一点,因为需要布局,测量等的视图较少。但我不希望看到任何明显的差异