我遇到以下问题;
我有一个LinearLayout,里面有一个ScrollView,在ScrollView中是一些自定义视图。现在我想在LinearLayout的背景中放置一个图像并保持图像的原始大小。但是当我设置LinearLayout的背景属性时,它会拉伸以适应整个屏幕。如何才能使图像保持原始尺寸?
我的xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/some_drawable">
<ScrollView
android:id="@+id/scrollview"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:fillViewport="true">
<some.custom.layout
android:id="@+id/mainLayout"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
/>
</ScrollView>
</LinearLayout>
答案 0 :(得分:23)
Egor答案的代码示例:
<FrameLayout
android:id="@+id/FrameLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/background"
/>
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
</LinearLayout>
</FrameLayout>
答案 1 :(得分:20)
尝试将FrameLayout与ImageView和LinearLayout结合使用。例如,尝试更改图像的alpha并将其移动到FrameLayout中的前景,因此LinearLayout保留在背景上。希望这有帮助!
答案 2 :(得分:0)
您可以查看InsetDrawable。无论是那个还是它可能都需要你将你的布局子类化为绘制你想要的方式,因为背景元素没有你需要的能力。
答案 3 :(得分:0)
根据ColdForged的建议,您可以从LinearLayout
移至RelativeLayout
并使用ImageView
显示图片,而不是更改背景。与RelativeLayout
不同,LinearLayout
中的观看次数可能会受到影响。
答案 4 :(得分:0)
<RelativeLayout
android:id="@+id/relLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/layoutLogin"
android:layout_alignLeft="@id/layoutLogin"
android:layout_alignRight="@id/layoutLogin"
android:layout_alignTop="@+id/layoutLogin"
android:adjustViewBounds="true"
android:background="@mipmap/ic_photo_bg"
android:scaleType="fitXY" />
<LinearLayout
android:id="@+id/layoutLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</RelativeLayout>