这是将图片背景设置为LinearLayout的最佳方法:将背景设置为LinearLayout或将FlaLayout中的LinearLayout包含在内并将ImageView添加为第一个Child?
详细信息:
我的目标是获得类似下面附图的用户界面。
我通过以下两种方式获得了这个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>
答案 0 :(得分:1)
第一个可能更标准,但它有局限性(例如,您不能指定缩放)。您应该尝试一下,如果无法获得所需效果,请转到第二步。就性能和内存而言,第一个会稍微好一点,因为需要布局,测量等的视图较少。但我不希望看到任何明显的差异