当我更改editText的背景颜色时,android studio中的整个背景颜色会发生变化

时间:2017-07-21 05:38:32

标签: android xml

我正在改变android studio中密码的背景颜色,问题是当我更改密码字段的背景颜色时,屏幕的整个背景颜色变化。 在应用背景颜色之前:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#201953"
    >

    <TextView
        android:text="Trip"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView1"
        android:textSize="80sp"
        android:textStyle="bold"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="80dp"
        android:textColor="@color/colorWhite"/>

    <TextView
        android:text="mat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView2"
        android:textSize="50sp"
        android:textStyle="bold"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="-10dp"
        android:layout_marginLeft="30dp"
        android:textColor="@color/colorWhite"/>
    <EditText
        android:layout_marginTop="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:ems="10"
        android:id="@+id/editText4"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:hint="Password"
        android:gravity="center"
        android:textColor="@color/colorBlack"
        android:layout_gravity="center"
         />
</LinearLayout>

在将背景颜色添加到密码字段布局之前,请执行以下操作:

Before adding background color to password field

将背景颜色应用于密码字段后:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#201953"
    >

    <TextView
        android:text="Trip"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView1"
        android:textSize="80sp"
        android:textStyle="bold"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="80dp"
        android:textColor="@color/colorWhite"/>

    <TextView
        android:text="mat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView2"
        android:textSize="50sp"
        android:textStyle="bold"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="-10dp"
        android:layout_marginLeft="30dp"
        android:textColor="@color/colorWhite"/>
    <EditText
        android:layout_marginTop="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:ems="10"
        android:id="@+id/editText4"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:hint="Password"
        android:gravity="center"
        android:textColor="#ffffff"
        android:layout_gravity="center"
        android:background="#fff"
         />
</LinearLayout>

将背景颜色添加到密码字段后,布局如下:

After adding background color to the password field

3 个答案:

答案 0 :(得分:1)

这样可以正常使用

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="#201953" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="#201953">

        <TextView
            android:text="Trip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/textView1"
            android:textSize="80sp"
            android:textStyle="bold"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="80dp"
            android:textColor="@color/whiteTextColor"/>

        <TextView
            android:text="mat"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/textView2"
            android:textSize="50sp"
            android:textStyle="bold"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="-10dp"
            android:layout_marginLeft="30dp"
            android:textColor="@color/whiteTextColor"/>
        <EditText
            android:layout_marginTop="10dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:ems="10"
            android:layout_gravity="center"
            android:layout_margin="10dp"
            android:id="@+id/editText4"
            android:hint="Password"
            android:background="#ffffff"
            />
    </LinearLayout>
</LinearLayout>

答案 1 :(得分:1)

无需为此获取第二个LinearLayout,只需从EditText中删除android:gravity="center",如下所示。它的工作原理

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="#201953"    
   android:orientation="vertical">

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="80dp"
    android:text="Trip"
    android:textColor="@color/colorWhite"
    android:textSize="80sp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginLeft="30dp"
    android:layout_marginTop="-10dp"
    android:text="mat"
    android:textColor="@color/colorWhite"
    android:textSize="50sp"
    android:textStyle="bold" />

<EditText
    android:id="@+id/editText4"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginLeft="40dp"
    android:layout_marginRight="40dp"
    android:layout_marginTop="10dp"
    android:background="@drawable/edt_background"
    android:ems="10"
    android:gravity="center"
    android:hint="Password"
    android:inputType="textPassword"
    android:textColor="#ffffff" />
  </LinearLayout>

<强> edt_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape  xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#ffff" />
<corners
    android:bottomRightRadius="1dp"
    android:bottomLeftRadius="1dp"
    android:topLeftRadius="1dp"
    android:topRightRadius="1dp" />
</shape>

使用android:background="@drawable/edt_background"重力,因为我更新了整个代码

答案 2 :(得分:0)

您可以通过在以下任何需要的地方的java类中放置以下代码来更改背景颜色

  Edittext password;
  password.setBackgroundColor(getResources().getColor(R.color.samplecolor));
  //here R.color.samplecolor is defined in colors.xml under values dir