在Scrollview Android上修复背景图片

时间:2014-03-17 16:39:22

标签: android layout scrollview

当我在我的代码中使用Scrollview时,我的背景图像会拉伸并滚动按钮。我只想按钮滚动,而不是背景。我附上了一张你可以弄明白的相关图片。 这是XML文件:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:background="@drawable/back"
                  android:orientation="vertical" >


        <ImageButton
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/app"
                android:layout_gravity="center"
                android:background="@drawable/bluebutton"
                android:layout_marginTop="80dp"
                android:layout_marginRight="80dp"
                android:layout_marginLeft="80dp"

                />

        <ImageButton
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/moshiri"
                android:background="@drawable/bluebutton"
                android:layout_marginTop="8dp"
                android:layout_marginRight="80dp"
                android:layout_marginLeft="80dp"
                />
        <ImageButton
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"

                android:id="@+id/about"
                android:background="@drawable/bluebutton"
                android:layout_marginTop="8dp"
                android:layout_marginRight="80dp"
                android:layout_marginLeft="80dp"
                />
        <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"

                android:id="@+id/exit"
                android:background="@drawable/bluebutton"
                android:layout_marginTop="8dp"
                android:layout_marginRight="80dp"
                android:layout_marginLeft="80dp"
                />

    </LinearLayout>
</ScrollView>

enter image description here

7 个答案:

答案 0 :(得分:7)

这件事对我来说很好。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >
        <ImageView
            android:id="@+id/gearImage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:clickable="true"
            android:src="@drawable/imageName" />

</ScrollView>

答案 1 :(得分:3)

将1个Linearlayout设置为root而不是scrollview,将use android:background="@drawable/back"设置为该布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/back" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@drawable/back"
            android:orientation="vertical" >


            <ImageButton
                android:id="@+id/app"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginLeft="80dp"
                android:layout_marginRight="80dp"
                android:layout_marginTop="80dp"
                android:background="@drawable/bluebutton" />

            <ImageButton
                android:id="@+id/moshiri"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="80dp"
                android:layout_marginRight="80dp"
                android:layout_marginTop="8dp"
                android:background="@drawable/bluebutton" />

            <ImageButton
                android:id="@+id/about"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="80dp"
                android:layout_marginRight="80dp"
                android:layout_marginTop="8dp"
                android:background="@drawable/bluebutton" />

            <ImageButton
                android:id="@+id/exit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="80dp"
                android:layout_marginRight="80dp"
                android:layout_marginTop="8dp"
                android:background="@drawable/bluebutton" />
        </LinearLayout>
    </ScrollView>


</LinearLayout>

我假设你的@drawable/back是你给定的图像背景

答案 2 :(得分:3)

在ScrollView上设置背景图像,并将Padding添加到ScrollView或边距添加到Linearlayout。

答案 3 :(得分:1)

这对我有用。图像自动调整大小并填充整个背景(宽度调整并在高度上裁剪。)

IEqualityComparer<T>

答案 4 :(得分:0)

正如Raanan所说,在ScrollView上设置背景图像,但为了防止背景在不同的屏幕尺寸上拉伸,您可以为其添加重力。

<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/back"
android:gravity="top" />

答案 5 :(得分:0)

这样做,

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:background="@drawable/back"
            android:layout_height="match_parent">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:orientation="vertical" >


        <ImageButton
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/app"
                android:layout_gravity="center"
                android:background="@drawable/bluebutton"
                android:layout_marginTop="80dp"
                android:layout_marginRight="80dp"
                android:layout_marginLeft="80dp"

                />

        <ImageButton
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/moshiri"
                android:background="@drawable/bluebutton"
                android:layout_marginTop="8dp"
                android:layout_marginRight="80dp"
                android:layout_marginLeft="80dp"
                />
        <ImageButton
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"

                android:id="@+id/about"
                android:background="@drawable/bluebutton"
                android:layout_marginTop="8dp"
                android:layout_marginRight="80dp"
                android:layout_marginLeft="80dp"
                />
        <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"

                android:id="@+id/exit"
                android:background="@drawable/bluebutton"
                android:layout_marginTop="8dp"
                android:layout_marginRight="80dp"
                android:layout_marginLeft="80dp"
                />

    </LinearLayout>
</ScrollView>

答案 6 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:context=".CadetEnrollmentFormActivity">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:src="@drawable/background" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
<!--put your view here -->


            </LinearLayout>
        </LinearLayout>

    </ScrollView>
</FrameLayout>