ImageView优于LinearLayout背景

时间:2013-12-03 21:29:04

标签: android android-layout android-ui

使用ImageView而不仅仅是将LinearLayout的背景设置为图像是否有任何优势? 例如,这里只是设置LinearLayout的背景图像

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/container">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/image"
        android:background="@drawable/bg"
        android:orientation="vertical" > 
    </LinearLayout>
</LinearLayout>

这是在LinearLayout

中使用ImageView
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/container">

    <ImageView
        android:id="@+id/image"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:src="@drawable/bg" />
</LinearLayout>

我使用哪一个是否重要?我目前正在使用LinearLayout背景方式,并且想知道以其他方式执行它是否有好处。

2 个答案:

答案 0 :(得分:2)

通过在imageView中设置linearLayout,您将无法在图片视图上放置任何内容。它将把所有的小部件一个接一个地放在一起,这样就不会完成&#34;背景图像效果&#34;。但是,如果根容器为relativeLayout,则可以。但我不明白这样做的原因或优势。 也许如果你想更广泛地控制图像的大小。

最终,最好只设置容器的背景。

答案 1 :(得分:2)

看,当你为布局设置背景时就是这样。图像重新整形并调整为该布局的尺寸。因此,当您将图像设置为背景时,它有时会变得太高或太宽。这可能不是你想要的。

但是,当您使用ImageView时,可以将宽度和高度设置为“match_parent”,然后在布局xml中使用名为android:scaleType的功能并使用centerCrop选项,它将自动...你得到它...居中并裁剪图像。现在请注意,实际的ImageView不会被裁剪。它只是增加了它的大小,以便它可以填充容器布局的边界。

出于您的目的,我建议您使用RelativeLayout并在其上加ImageView然后加TextView除非,否则LinearLayout与您的图片具有相同的尺寸比率。然后,您可以将图像设置为背景。

最终决定取决于你。看看最适合你的是什么......