EditText 的圆形边框 Android

Rounded Borders for EditText Android

我正在尝试在我的一个布局中的两个 EditText 周围创建圆角边框。为此,我创建了一个 xml rounded_pass.xml 并将其作为背景分配给包含两个 EditText 字段的 LinearLayout。但我也想在 EditViews 之间有一个分隔符。

rounded_pass.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle"  >
            <corners
                android:topLeftRadius="5dip"
                android:topRightRadius="5dip"
                android:bottomLeftRadius="5dip"
                android:bottomRightRadius="5dip"

                />
        </shape>
    </item>
</selector>

LoginActivity.xml:

 .......
    .......
     <LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/imageView"
    android:background="@drawable/rounded_pass"
    >
    <EditText
        android:layout_width="215dp"
        android:layout_height="wrap_content"
        android:id="@+id/editText"

       />

    <EditText
        android:layout_width="215dp"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:ems="10"
        android:id="@+id/editText2"
     />
    </LinearLayout>
    .......
    .......

我想要的效果是: Desired Effect

现在:

Error Image

与其为 Emailpassword 都提供边框,不如为其父视图提供边框。即 RelativeLayoutLinearLayout 或任何布局

<LinearLayout background="@drawable/round_corner_drawable">

    //your both edittexts

</LinearLayout>

在您的 EditText 之间添加高度为 1dpView,这样将绘制出看起来像边框的线

您的形状 xml 文件有细微变化。 您为两个文件设置了相同的角值。 应该有角值 5 bottomLeft & bottomRight 用于密码归档。

这是完美的代码。请运行在设备中查看。

rounded_uname.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners
        android:bottomLeftRadius="0dip"
        android:bottomRightRadius="0dip"
        android:topLeftRadius="5dip"
        android:topRightRadius="5dip"
        />
    <stroke
        android:width="1dip"
        android:color="#1caadf" />
</shape>

rounded_pass.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners
        android:bottomLeftRadius="5dip"
        android:bottomRightRadius="5dip"
        android:topLeftRadius="0dip"
        android:topRightRadius="0dip"
        />
    <stroke
        android:width="1dip"
        android:color="#1caadf" />
</shape>

你可以试试这个

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/rounded_uname"
    android:orientation="vertical">

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent" />

    <View
        android:id="@+id/v1"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#1caadf"></View>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:ems="10"
        android:inputType="textPassword" />
</LinearLayout>

创建单个 xml rounded_border.xml 并将其应用于根布局。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle"  >
            <corners
                android:topLeftRadius="5dip"
                android:topRightRadius="5dip"
                android:bottomLeftRadius="5dip"
                android:bottomRightRadius="5dip"

                />
            <stroke android:width="1dip" android:color="#1caadf" />
            <!--<gradient android:angle="-90" android:startColor="#ffffff" android:endColor="#ffffff" />-->
        </shape>
    </item>
</selector>