1

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

我的代码如下所示:

 <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());

    }
4

2 回答 2

2

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

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

android:background="@drawable/background"

Step2(a):如果您在 Activity 中尝试将 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);
    ....
}
于 2018-01-21T21:49:07.950 回答
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>
于 2012-07-24T11:58:21.557 回答