2016-07-14 8 views
2

私の知る限り、レイアウトファイルに設定できるEditTextフィールドの周囲に影を落とすプロパティはありません。私は問題を探して、カスタムの背景xml drawableを提供するという解決策を見つけました。AndroidスタジオのEditTextの4辺に影を落とす

マイ描画可能/ background_with_shadowは次のようになります。

<?xml version="1.0" encoding="utf-8"?> 
<layer-lis xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item > 
     <shape 
      android:shape="rectangle"> 
      <solid android:color="@android:color/darker_gray" /> 
      <corners android:radius="5dp"/> 
     </shape> 
    </item> 
    <item android:right="1dp" android:left="1dp" android:bottom="2dp"> 
     <shape 
      android:shape="rectangle"> 
      <solid android:color="@android:color/white"/> 
      <corners android:radius="5dp"/> 
     </shape> 
    </item> 
</layer-list> 

、それはちょうど下の周りに影を落とししかし、私はEditText

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/background_with_shadow"> 
<EditText> 
. 
. 
</EditText> 
<LinearLayout> 

が含まれている私のLinearLayoutために、このプロパティを設定することだし、下隅。 4つの側面とコーナーではどうすればいいですか?

私はこれを達成しようとしている:あなたのLinearLayoutの背景として、このレイアウトを設定 enter image description here

+0

nullに背景を作成してみます。このようなアンドロイド:背景= "@ヌル" ' –

+0

申し訳ありません私の質問では言及しなかったが、私は' EditText'と白いバックラウンドが必要@ Jolson –

+0

9パッチを使用してここで良いオプションがあります。 –

答えて

4

layer-listを使用せずにエディットテキストの周りに影を取得するには、いくつかのより良い方法があります。

#1

このようなCardViewでごEditTextをラップ:

<android.support.v7.widget.CardView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:cardElevation="7dp" 
    android:layout_margin="10dp" 
    app:cardCornerRadius="0dp"> 

     <EditText 
      android:id="@+id/msg_box" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:hint="Write a message" 
      android:paddingLeft="5dp" 
      android:paddingStart="5dp" 
      android:textColorHint="#c7c7c7" 
      android:textSize="15dp" /> 

</android.support.v7.widget.CardView> 

OUTPUT

Shadow using CardView

あなたEditTextの背景として9パッチを使用してください:

<EditText 
     android:id="@+id/msg_box" 
     android:padding="20dp" 
     android:background="@drawable/shadow" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:lines="5" 
     android:gravity="top" 
     android:hint="Enter your complaint..." 
     android:textColorHint="#a7a7a7" 
     android:textSize="15dp" /> 

OUTPUT

9patch shadow

を9patchについてもっと読みます210。

Hereさんは9パッチシャドウを生成するための素晴らしいオンラインツールです。

+0

あなたはあなたの編集テキストの4辺の周りに追加したい影のパッチ画像が必要です。 –

+1

最後のリンクを確認して、シャドウのぼかしオプションを調整して9パッチ画像を取得し、高さと幅を10のような小さな値に設定し、角の半径を0に設定します。 –

+0

これはまさに私が望むものです。ありがとうございました! –

2
<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 

    <item> 
     <shape> 
      <!-- set the shadow color here --> 
      <stroke 
       android:width="2.5dp" 
       android:color="@color/darker_gray" /> 

      <!-- setting the thickness of shadow (positive value will give shadow on that side) --> 

      <!--Set shadow width as per your requirement --> 
      <padding 
       android:bottom="2dp" 
       android:left="0.5dp" 
       android:right="2dp" 
       android:top="0.5dp" /> 

      <corners android:radius="2dp" /> 
     </shape> 
    </item> 

    <!--White Background --> 
    <item> 
     <shape> 
      <solid android:color="#fff" /> 
      <corners android:radius="2dp" /> 
     </shape> 
    </item> 
</layer-list> 

を。

+0

これは素晴らしいです。また、このコメントにより、理解が容易になりました。 境界線を影のように見えるようにするにはどうすればよいですか? @Kunu –

+0

達成しようとしているもののスクリーンショットを投稿できますか? – Kunu

+0

私の質問を編集し、スクリーンショットを追加@Kunu –

関連する問題