【问题标题】:Edit text with round corner and shadow使用圆角和阴影编辑文本
【发布时间】:2012-12-16 20:35:27
【问题描述】:

我正在尝试实现如下图所示的效果:

在这张图片中有一个带有圆角和顶部内部阴影的编辑文本。我尝试了很多但没有成功在edittext中获得阴影。

我搜索了这个主题,但所有示例都在 edittext 边框之外显示阴影。我不知道我怎样才能做到这一点。

按钮和背景图像已经完成,唯一剩下的就是edittext shadow。如果有人已经这样做或知道如何做到这一点,请与我分享。任何帮助都将不胜感激。

【问题讨论】:

  • 创建一个想要的图像并将其设置为Edittext的背景(最好是9个补丁图像)
  • 如果可能,我想以编程方式执行此操作。
  • 所以现在你只想给 Editext 一个影子吧?
  • android:shadowColor ="#0f0f0f" android:shadowRadius="1.6" android:shadowDx="1.5" android:shadowDy="1.3"

标签: android android-layout


【解决方案1】:

就这样

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient
            android:centerY="0.2"
            android:startColor="#FFBDBDBD"
            android:centerColor="#65FFFFFF"
            android:endColor="#00FFFFFF"
            android:angle="270"
            />
        <stroke
            android:width="1dp"
            android:color="#C3C3C3" />
        <corners
            android:radius="25dp" />
</shape>

【讨论】:

    【解决方案2】:

    如果你想把EditText的边框做成圆形和曲线,那么只需将这段代码粘贴到Drawable/mystyle.xml中(创建这个xml文件)。

    <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="11dp" />
    </shape>
    

    现在在您的 EditText 中将此文件链接为

     android:background="@+drawable/mystyle"
    

    【讨论】:

      【解决方案3】:

      1.) 在drawable文件夹中创建rounded_edittext.xml文件

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

      2.) 将以下代码放入 values 文件夹中的 styles.xml 文件中

      <style name="largeEdittextText">
          <item name="android:textAppearance">@android:style/TextAppearance.Large.Inverse</item>
          <item name="android:textSize">15dp</item>
          <item name="android:singleLine">true</item>
          <item name="android:paddingTop">8dp</item>
          <item name="android:paddingBottom">8dp</item>
          <item name="android:paddingLeft">5dp</item>
          <item name="android:background">#FFB90F</item>
          <item name="android:textColor">@android:color/black</item>
      </style>
      

      3.) 在布局文件中的edittext上应用两者

      <EditText
      android:id="@+id/userName"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_alignParentLeft="true"
      android:layout_alignParentTop="true"
      android:gravity="center_horizontal"
      android:hint="@string/login_userHint"
      android:text="admin"
      android:paddingTop="8dp"
      android:paddingBottom="8dp"
      android:singleLine="true"
      android:textAppearance="@style/largeEdittextText"
      android:background="@drawable/rounded_edittext">
      </EditText>
      

      【讨论】:

        【解决方案4】:

        只需在您的 drawable 文件夹中创建一个 xml 文件,名称为 round_corner.xml。然后添加以下代码。

        <?xml version="1.0" encoding="utf-8"?>
        <shape xmlns:android="http://schemas.android.com/apk/res/android" >
        
            <corners
                android:radius="3dp"
               />
            <solid
                android:color="@android:color/white"/>
        
        </shape>
        

        最后,您在 Edittextbackground 属性中添加此 xml,如下所示:-

         <EditText
            android:id="@+id/ed1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/round_corner"
          />
        

        完成..绝对可以..

        【讨论】:

        • 当你有半径时,你已经处理了 bottomLeft、bottomRight、topLeft 和 topRight。所以你可以删除那些。
        【解决方案5】:

        您可以将可绘制的形状(矩形)设置为视图的背景。

        <TextView android:text="Some text" android:background="@drawable/back"/>
        

        和矩形drawable back.xml(放入res/drawable文件夹):

        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
           <solid android:color="#ffffff" />
           <stroke android:width="1dip" android:color="#4fa5d5"/>
        </shape>
        

        您可以使用#00000000 使纯色具有透明背景。 您还可以使用填充将文本与边框分开。 欲了解更多信息,请参阅:http://developer.android.com/guide/topics/resources/drawable-resource.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-09-15
          • 2016-10-05
          • 2016-02-20
          • 2011-09-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多