2013-01-02 111 views
6

我想实现其在该如下图所示的效果:编辑文字与圆角和阴影

enter image description here

在此图像中没有与顶部圆角和内部阴影一个EditText。我尝试了很多,但没有成功获取edittext中的阴影。

我搜索了这个主题,但所有的例子都显示了edittext边框外的阴影。我不知道我该如何实现这一目标。

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

+0

创建所需的图像,并将其设置为EDITTEXT的背景(9个补丁图像将更可取) – juned

+0

我想以编程方式做到这一点,如果有可能。 – Pari

+0

所以现在你只是想给这个'Editext'一个影子吧? – juned

回答

5

地方下面style.xml到您绘制的文件夹

style.xml

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

<item android:state_pressed="true" android:state_focused="true"> 
    <shape> 
     <stroke 
      android:width="2.3dp" 
      android:color="#F6EBC9" /> 
     <corners 
      android:radius="10dp" /> 
    </shape> 
</item> 

<item android:state_pressed="true" android:state_focused="false"> 
    <shape> 
     <stroke 
      android:width="2.3dp" 
      android:color="#F6EBC9" />  
     <corners 
      android:radius="10dp" />  
    </shape> 
</item> 

<item android:state_pressed="false" android:state_focused="true"> 
    <shape> 
     <stroke 
      android:width="0.7dp" 
      android:color="#000000" /> 
     <corners 
      android:radius="15dp" />       
    </shape> 
</item> 

<item android:state_pressed="false" android:state_focused="false"> 
    <shape> 
     <gradient 
      android:startColor="#F6EBC9" 
      android:centerColor="#F6EBC9" 
      android:endColor="#F6EBC9" 
      android:angle="270" 
     /> 
     <stroke 
      android:width="0.7dp"     
      android:color="#000000" /> 
     <corners 
      android:radius="15dp" />    
    </shape> 
</item> 

<item android:state_enabled="true"> 
    <shape> 
     <padding 
       android:left="4dp" 
       android:top="4dp" 
       android:right="4dp" 
       android:bottom="4dp" 
      /> 
    </shape> 
</item> 

</selector> 

和EditText上标签内的XML文件应用此机器人:背景= “@绘制/风格” 调整渐变标记instyle.xml中的startcolor,endcolor和centercolor以在您的编辑文本中创建阴影效果

+10

复制&从这里粘贴:http://stackoverflow.com/ a/6895823/521728 – Lucas

2

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

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

和Rectangle绘制back.xml(投入RES /可绘制文件夹):

<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

4

只需创建一个在您绘制文件夹名称的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> 

最后,你在后台添加此XML属性您EDITTEXT如下: -

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

Done..Definitely它的工作原理..

+2

当您有半径时,您已经处理了bottomLeft,bottomRight,topLeft和topRight。所以你可以删除这些。 – Loolooii

2

1)创建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.)在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 
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> 
+2

我喜欢这个。 – HyBRiD

0

,如果你想使边境的EditText圆形和曲线上的EditText同时应用,然后只需粘贴绘制对象/ 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

了这样

enter image description here

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