如何将阴影应用于ImageView?

我想将阴影应用于ImageView 。 当我将阴影应用于TextView我得到了它但是它没有进入ImageView 。 我怎么解决这个问题?

我们还可以使用CardView ,它提供圆角背景和阴影。 要使用它,您需要将v7 CardView库作为依赖项添加到build.gradle中的项目,如下所示。

 dependencies { compile 'com.android.support:cardview-v7:23.0.1' ------- } 

注意:使用受尊重的版本在上面的行中更改23.0.1

所以我用CardView包围了ImageView以制作下面的阴影。

    

它会在图像周围添加阴影。

注意:我不知道这是否是一个好的解决方法。 我是初学者。 我试图实现CardView ,它提出了为此实现相同的想法。 如果不好请更新我的原因。

这取自Romain Guy在Devoxx的演讲,pdf在这里find。

 Paint mShadow = new Paint(); // radius=10, y-offset=2, color=black mShadow.setShadowLayer(10.0f, 0.0f, 2.0f, 0xFF000000); // in onDraw(Canvas) canvas.drawBitmap(bitmap, 0.0f, 0.0f, mShadow); 

希望这可以帮助。

笔记

不要忘记Honeycomb及以上你需要调用setLayerType(LAYER_TYPE_SOFTWARE, mShadow) ,否则你将看不到你的影子! (@Dmitriy_Boichenko)

不幸的是, SetShadowLayer无法使用硬件加速,因此大大降低了性能(@Matt Wear)

从这里采取的答案

对于大于21的Api。您可以在imageview或Button中尝试xml: 在开发人员站点阅读此处

 android:elevation="5dp" 

您可以创建一个可绘制的图层列表,并将两个项目(drawables)放入其中以获取图像和阴影。

您的阴影项目的位置和内容可能会根据您想要应用阴影的位置(顶部,左侧,右侧,右侧和左侧等)和阴影样式而改变。

创建文件shadow_rect.xml

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

并在你的Imageview中使用它作为android:background =“@ drawable / shadow_rect。