【问题标题】:Android EditText Border Background ColorAndroid EditText 边框背景颜色
【发布时间】:2015-07-05 17:18:24
【问题描述】:

在我的应用程序中,我将EditText 设置为边框背景颜色,它在所有设备上都可以正常工作,但是在我的4.1.2 设备上,整个EditText 显示为黑色。我可以在其中输入文本,一切正常,但文本不可见,因为EditText 是完全黑色的。如果我删除背景边框颜色,它工作正常。

这是我编辑文本的 xml 代码。

<EditText
     android:id="@+id/et_date_from"
     android:layout_width="wrap_content"
     android:layout_height="match_parent"
     android:layout_weight="0.68"
     android:background="@drawable/edittext_border"
     android:ems="10" />

edittext_border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    android:thickness="0dp" >

    <stroke
        android:width="1dp"
        android:color="@color/test_blue_light" />

    <corners android:radius="5dp" />

</shape>

请给我任何解决方案。

【问题讨论】:

  • 您是否尝试过明确地为该形状赋予类似白色的颜色?到目前为止,您只是设置了笔触颜色。

标签: android android-layout colors android-edittext border


【解决方案1】:

试试这个形状。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    android:thickness="0dp" >

    <stroke
        android:width="1dp"
        android:color="@color/test_blue_light" />
    <solid android:color="@color/white"/>

    <corners android:radius="5dp" />

</shape>

【讨论】:

    【解决方案2】:

    我知道这是一个老问题,并且有一个公认的答案,但我想为将来遇到同样问题的人更新@Sajal 的答案。最好使用“透明”作为纯色,这样它不会影响您当前的布局设计。

    <?xml version="1.0" encoding="utf-8"?>
       <shape xmlns:android="http://schemas.android.com/apk/res/android"
          android:shape="rectangle"
          android:thickness="0dp" >
    
          <stroke
              android:width="1dp"
              android:color="@color/test_blue_light" />
          <solid android:color="@android:color/transparent"/>
    
          <corners android:radius="5dp" />
    
       </shape>
    

    【讨论】:

      【解决方案3】:

      为您的背景(可绘制)文件设置实体属性。

              <solid color="color according to your need">
      

      【讨论】:

        【解决方案4】:

        如果你只想显示边框,并设置为 bg 透明使用上面的代码`

        <corners
            android:radius="5dp"></corners>
        
        <stroke
            android:width="2px"
            android:color="@color/colorPrimary"></stroke>
        
        <solid android:color="@android:color/transparent"/>
        

        `

        【讨论】:

          【解决方案5】:

          在可绘制的 shape_border_and_background_login.xml 中创建 xml 文件:

          <?xml version="1.0" encoding="utf-8"?>
          <shape xmlns:android="http://schemas.android.com/apk/res/android"
                 android:shape="rectangle"
              >
              <corners android:radius="25dip" />
              <solid android:color="#55ffffff">
          
              </solid>
          <stroke
              android:width="2dp"
              android:color="@color/white" />
          

          将形状文件添加到 EditText 背景:

           <EditText
                                android:id="@+id/edt_email"
                                android:layout_width="0dp"
                                android:layout_height="wrap_content"
                                android:layout_weight="10"
                              android:background="@drawable/shape_border_and_background_login"
                                android:inputType="textPersonName"
                                android:padding="@dimen/size15"
                                android:textSize="@dimen/size17"
                               />
          

          【讨论】: