使用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背景方式,并且想知道以其他方式执行它是否有好处。
答案 0 :(得分:2)
通过在imageView
中设置linearLayout
,您将无法在图片视图上放置任何内容。它将把所有的小部件一个接一个地放在一起,这样就不会完成&#34;背景图像效果&#34;。但是,如果根容器为relativeLayout
,则可以。但我不明白这样做的原因或优势。 也许如果你想更广泛地控制图像的大小。
最终,最好只设置容器的背景。
答案 1 :(得分:2)
看,当你为布局设置背景时就是这样。图像重新整形并调整为该布局的尺寸。因此,当您将图像设置为背景时,它有时会变得太高或太宽。这可能不是你想要的。
但是,当您使用ImageView
时,可以将宽度和高度设置为“match_parent”,然后在布局xml中使用名为android:scaleType
的功能并使用centerCrop
选项,它将自动...你得到它...居中并裁剪图像。现在请注意,实际的ImageView
不会被裁剪。它只是增加了它的大小,以便它可以填充容器布局的边界。
出于您的目的,我建议您使用RelativeLayout
并在其上加ImageView
然后加TextView
。 除非,否则LinearLayout
与您的图片具有相同的尺寸比率。然后,您可以将图像设置为背景。
最终决定取决于你。看看最适合你的是什么......