2

長方形のボックスを使用して imageView を表示しています。このようにボックスに外側の影を付けたいここに画像の説明を入力

このxmlコンテンツを使用しています

<corners android:radius="3dp" />

<stroke
    android:width="1dp"
    android:color="#AAAAAA" />

<solid android:color="#FFF" />

そしてこの箱を入手 ここに画像の説明を入力

誰かがそれを行う方法を教えてください。

4

4 に答える 4

4

9 パッチを使用して適切な背景を作成する

http://developer.android.com/tools/help/draw9patch.html

于 2013-09-25T06:20:53.703 に答える
2

次のリンクのチュートリアルと画像を使用したところ、完璧な影が得られました (好みに合わせてパディングを調整する必要がありました): http://sapandiwakar.in/adding-shadows-to-views-in- android-using-9-patch-image/

親ビューに影を追加し、その上に通常の背景を追加するだけです。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/shadow"
    android:paddingBottom="4dp"
    android:paddingLeft="5dp"
    android:paddingRight="4dp"
    android:paddingTop="4dp"
    android:layout_gravity="center"
     >
    <LinearLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="@drawable/popup_menu_background">

        <ListView
            android:id="@+id/listViewMenu"
            android:layout_width="150dp"
            android:layout_height="wrap_content">
        </ListView>
    </LinearLayout>
</LinearLayout>

そして結果:

ここに画像の説明を入力

于 2014-06-10T07:40:03.093 に答える
1

悲しいことに、onDraw のオーバーライドを開始し、手動で影を描画しない限り、Android でコード/xml を介して影を追加することはできません (これはおそらく素晴らしい結果をもたらさず、計算コストが高く、時間の価値がありませんあなたは私に尋ねます)。

これには、9 パッチ ソリューションを使用する必要があります。

私はあなたの痛みを感じますが... :)

于 2013-09-25T06:28:41.977 に答える
0

このコードを試してください。2 つのレイアウトを使用して実行しましたが、1 つにマージできます

あなたのxmlファイルにこのコードを書いてください

     <RelativeLayout 
                android:id="@+id/home_screen"
                android:layout_height="150dp"
                android:layout_width="fill_parent"
                android:layout_marginTop="50dp"
                android:background="@drawable/background_border" >                  

                <LinearLayout
                    android:layout_height="150dp"
                    android:layout_width="fill_parent"
                    android:layout_margin="10dp"                        
                    android:background="@drawable/home_border" >

                    <ImageView
                        android:id="@+id/iv"
                        android:layout_height="fill_parent"
                        android:layout_width="fill_parent"
                        android:layout_margin="10dp"
                        android:background="@drawable/menu_background" />

                </LinearLayout>    

     </RelativeLayout>


 and the two xml in res/drawable is here

  home_border.xml 

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
       <solid android:color="@android:color/transparent" />
   </shape>
</item>

<item android:left="1dp" android:right="1dp"  android:top="1dp"  
    android:bottom="1dp">
    <shape android:shape="rectangle">
         <solid android:color="@android:color/transparent" />
           <stroke android:width="10dp" android:color="@android:color/white" />
         <corners
         android:bottomRightRadius="1dp"
         android:bottomLeftRadius="1dp"
     android:topLeftRadius="1dp"
     android:topRightRadius="1dp"/>
    </shape>
 </item>
</layer-list>


and background_border.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
       <solid android:color="@android:color/transparent" />
    </shape>
</item>
   <item android:left="-10dp" android:right="-10dp"  android:top="-10dp"  
       android:bottom="-10dp">
     <shape android:shape="rectangle">
         <solid android:color="#884d4d4d" />
         <stroke android:width="1dp" android:color="@android:color/white" />
      </shape>
   </item>
</layer-list>

これを試して。ここで #884d4d4d は透明色のカラー コードです。色は、透明色と灰色の 2 色の組み合わせです。

于 2013-09-25T07:15:40.070 に答える