2013-01-02 159 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>