Android:ScrollView拉伸背景图片

时间:2012-07-24 11:38:47

标签: android android-layout scrollview

我想在带有背景图片的登录表单中使用scrollview,但图像会拉伸。

我的代码如下所示:

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
     android:id="@+id/login_layout" >

    <LinearLayout 
        android:layout_width="250dp"
        android:layout_height="270dp"
        android:layout_marginTop="40dp"
        android:gravity="center"
        android:orientation="vertical"
        android:background="@drawable/login" >

        <LinearLayout 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            android:orientation="vertical" >

            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/username_login" />

            <EditText
                android:id="@+id/username_login"
                android:inputType="text"
                android:layout_width="200dp"
                android:layout_height="30dp"
                android:paddingLeft="5dp"
                android:paddingTop="2dp"
                android:background="@drawable/edit_text" />

            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/password_login" />

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

</ScrollView>

我有2个用户名和密码的文本编辑和一个登录按钮

android:background="@drawable/login"

是包含文本编辑和按钮

的布局的背景图像

有什么帮助吗?

知道我在活动中设置背景(伸展)

我在活动中设置背景

private void setBackground(){


        LinearLayout layout = (LinearLayout) findViewById(R.id.login_layout);
        layout.setBackgroundDrawable(application.getBackground01());

    }

2 个答案:

答案 0 :(得分:2)

经过这么多研究得到了解决方案:

步骤1:从.xml文件中删除以下行

android:background="@drawable/background"

步骤2(a):如果您在“活动”中尝试将onCreate设置为

protected void onCreate(Bundle savedInstanceState) { 
    .... 
    getWindow().setBackgroundDrawableResource(R.drawable.image_resourcename);
    ....
}

Step2(b):如果您正在尝试Fragment,请将onCreateView设置为

protected void onCreate(Bundle savedInstanceState) {
    .... 
    getActivity().getWindow().setBackgroundDrawableResource(R.drawable.image_resourcename);
    ....
}

答案 1 :(得分:1)

您可以尝试使用此代码。希望是可行的。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/login_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/login"
    android:gravity="center"
    android:orientation="vertical" >

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

        <LinearLayout
            android:layout_width="250dp"
            android:layout_height="270dp"
            android:layout_marginTop="40dp"
            android:gravity="center"
            android:orientation="vertical" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="30dp"
                android:orientation="vertical" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/username_login" />

                <EditText
                    android:id="@+id/username_login"
                    android:layout_width="200dp"
                    android:layout_height="30dp"
                    android:background="@drawable/edit_text"
                    android:inputType="text"
                    android:paddingLeft="5dp"
                    android:paddingTop="2dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/password_login" />
            </LinearLayout>
        </LinearLayout>
    </ScrollView>

</LinearLayout>