Edittext使用shape.xml更改边框颜色

时间:2014-12-30 16:45:20

标签: android android-edittext

我在res下创建了一个shape.xml文件 - >可绘制的文件夹。

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
        <solid android:color="#ffffff" />
        <stroke android:width="1dip" android:color="#ff9900" />
</selector>

然后我在EditText

上使用它
<EditText
    android:layout_width="300dp"
    android:layout_height="50dp"
    android:id="@+id/editText"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="300dp"
    android:hint="@string/hint"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:singleLine="true"
    android:background="@drawable/shape"/>

但结果是它根本没有改变边框颜色。为什么,出了什么问题?

9 个答案:

答案 0 :(得分:80)

为什么使用selector作为根标记? selector用于为视图的不同状态应用多个备用drawable,因此在这种情况下,不需要selector

请尝试以下代码。

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

    <!-- Background Color -->
    <solid android:color="#ffffff" />

    <!-- Border Color -->
    <stroke android:width="1dp" android:color="#ff9900" />

    <!-- Round Corners -->
    <corners android:radius="5dp" />

</shape>

另外值得一提的是,所有颜色条目也支持alpha通道,这意味着您可以使用透明或半透明颜色。例如#RRGGBBAA

答案 1 :(得分:11)

步骤1:在Drawable文件夹中创建border.xml

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

    <corners
        android:radius="2dp"
        />
    <solid android:color="#ffffff"
        />
    <stroke
        android:width="2dip"
        android:color="#000" />
</shape>

第2步:在XML文件中创建EditText

 <EditText
        android:id="@+id/etEmail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="25dp"
        android:layout_marginTop="25dp"
        android:hint="Enter Email"
        android:padding="10dp"
        android:layout_marginRight="25dp"
        android:background="@drawable/border"
        android:inputType="textEmailAddress"
        android:singleLine="true" />

答案 2 :(得分:2)

$( "#kraje option" ).not(".wlacozneto").prop('disabled', true);

您必须从<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> android:shape="rectangle"> <solid android:color="#ffffff" /> <stroke android:width="1dip" android:color="#ff9900" /> </selector> 根标记中删除>,如下所示

selector

将代码从 <selector xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 移至shape

答案 3 :(得分:1)

选择器用于为视图的不同状态应用多个备用drawable,因此在这种情况下,不需要选择器

改为使用形状

<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ffffff" />
    <stroke android:width="1dip" android:color="#ff9900" />
</shape>

答案 4 :(得分:1)

我使用以下内容来解决这个问题

edittext_style.xml

$(row).find('*').each(function () {
    updateElementIndex(this, prefix, formCount);
});

如下所示:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:thickness="0dp"
android:shape="rectangle">
<stroke android:width="1dp"
        android:color="#c8c8c8"/>
<corners android:radius="0dp" />

试试这个..

答案 5 :(得分:1)

在xml上使用此代码。我希望它会起作用

<?xml version="1.0" encoding="utf-8" ?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
           android:thickness="0dp"
           android:shape="rectangle">
      <stroke android:width="3dp"
             android:color="#4799E8"/>
      <corners android:radius="5dp" />
      <gradient
       android:startColor="#C8C8C8"
       android:endColor="#FFFFFF"
       android:type="linear"
       android:angle="270"/>
    </shape>

答案 6 :(得分:1)

检查以下代码可能会帮助您, 使用笔触可以在编辑文本中设置边框并更改其颜色,如下所示...

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<stroke
    android:width="2dp"
    android:color="@color/secondary" />
<corners
    android:bottomLeftRadius="10dp"
    android:bottomRightRadius="10dp"
    android:topLeftRadius="10dp"
    android:topRightRadius="10dp" />

将其添加为背景以编辑文本。 谢谢!

答案 7 :(得分:0)

root tag文件中使用shape代替selector代替shape.xml,它将解决您的问题!

答案 8 :(得分:0)

这对我有用: Drwable->新建-> Drawable资源文件->创建xml文件

  <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <solid android:color="#e0e0e0" />
        <stroke android:width="2dp" android:color="#a4b0ba" />
    </shape>