【问题标题】:Rounded Borders for EditText AndroidEditText Android 的圆角边框
【发布时间】:2016-10-29 02:27:05
【问题描述】:

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

rounded_pa​​ss.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

【问题讨论】:

    标签: android xml android-edittext styles


    【解决方案1】:

    不要同时为Emailpassword 提供边框,而是为其父视图提供边框。即RelativeLayoutLinearLayout 或任何布局

    <LinearLayout background="@drawable/round_corner_drawable">
    
        //your both edittexts
    
    </LinearLayout>
    

    在您的EditText 之间添加高度为1dpView,以便绘制看起来像边框的线

    【讨论】:

    • 感谢您的回答,但两个字段之间只有一个边框,您可以在所需的图像中看到如何处理它。
    • @NiranjPatel 是的,同意你的观点,但我想给出正确的方法来处理这种观点。
    • @RRR 你也是对的,但有时新手会对新方式感到困惑。
    • @NiranjPatel 是的,但我认为新手想要完整的代码而不是智能解决方案,abhishek 从中受益:D
    • @RRR 同意新手总是想要一个完整的代码,我想我们都早在那个阶段......
    【解决方案2】:

    您的 shape 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_pa​​ss.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>
    

    【讨论】:

      【解决方案3】:

      你可以试试这个

       <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>
      

      【讨论】:

      • 你能把这个android:background="@android:color/transparent"添加到你的EditText
      • 谢谢它帮了我很多
      • 你太厉害了。
      • 总是 wlc @MehvishFaisal
      【解决方案4】:

      创建单个 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>
      

      【讨论】:

        猜你喜欢
        • 2012-06-16
        • 2020-05-27
        • 1970-01-01
        • 1970-01-01
        • 2017-12-30
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多