2011-04-02 23 views
22

可能重复:
how to set shadow to a View in android?如何在android线性布局上获得阴影?

在我的Android应用程序,我需要带圆角的布局和背景应该有一定的透明度。对于这个我使用这个XML,它工作正常:

customshape.xml:

<shape android:shape="rectangle"> 
    <gradient android:startColor="#E2FFFFFF" android:endColor="#E2D0E3E5" android:angle="270"/> 
    <corners android:radius="10dp" /> 
</shape> 

style.xml:

<style name="LinearLayoutRoundCorners"> 
    <item name="android:layout_width">fill_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:background">@drawable/customshape</item> 
</style> 

我还需要一个小的阴影,以右侧和底部的布局。我找不到办法做到这一点。我已经看到了一个黑客,你将另一个布局放在后面,使其看起来像一个阴影,但这对我来说不起作用,因为我的布局具有透明度,所以看起来不太好。如何在不使用图像作为布局背景的情况下在布局上获得好看的阴影?

回答

8

据我所知,没有办法将阴影应用于View对象。我建议你看看九个补丁,我用它们来制作一个影子。

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

(也看到这个答案Custom ImageView with drop shadow

+0

感谢这个答案,但我想我跳过阴影,然后如果有做到这一点,而不使用的图像没有什么好办法。不管怎么说,还是要谢谢你! – Martin 2011-04-02 15:53:12

+0

但是,遗憾的是,这并不是将阴影应用于Android视图的原生方式。 – 2014-04-15 12:57:29

+0

使用来自AppCompat的CardView v21库 – 2015-02-23 20:36:50

64

我知道这是迟到的方式,但我读了这个问题/答案组合,虽然不需要图像的另一种方法。我在博客上解释了一篇文章。我认为这将有助于未来的访问者在这里得到这两个答案。

http://web.archive.org/web/20120520203231/http://www.anotherandroidblog.com/2011/06/29/drop-shadow-linearlayout/

+1

正是我需要的。非常感谢! – Aracem 2011-10-21 15:39:10

+0

伟大的解决方案! – Geltrude 2013-05-23 08:53:25

+0

如果您需要将阴影放在ListView之类的顶部,请使用FrameLayout – 2013-08-26 02:11:33