The best way to create a shadow is to use a 9patch
image as the
background of the view (or a ViewGroup
that wraps the view).
The first step is to create a png image with a shadow around it. I
used photoshop to create such an image. Its really simple.
- Create a new image with Photoshop.
- Add a layer and create a black square of 4x4.
- Create a shadow on the layer by selecting the layer in layer
explorer and clicking on a button titled fx and choosing drop shadow.
- Export the image as png.
The next step is to create 9-patch drawables from this image.
- Open
draw9patch
from android-sdk/tools
- Open the image in
draw9patch
- Create 4 black lines on the four sides of the square like the
following and then save the image as
shadow.9.png
.
Now you can add this shadow as the background of the views you want to
add the shadow to. Add shadow.9.png
to res/drawables
. Now add it
as a background:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/shadow"
android:paddingBottom="5px"
android:paddingLeft="6px"
android:paddingRight="5px"
android:paddingTop="5px"
>
I recently wrote a blog post that explains this in detail and
includes the 9patch image that I use for creating the shadow.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…