在自定义视图中为位图创建阴影

create shadow for bitmap in custom view

我有一个包含一些位图的自定义视图,我想为它们设置阴影,为此,我使用以下代码:

shadowPaints=new Paint(Paint.ANTI_ALIAS_FLAG);
shadowPaints.setShadowLayer(10.0f, 3.0f, 2.0f, Color.BLACK);
canvas.drawBitmap(bmp, matrix, shadowPaints);   
setLayerType(LAYER_TYPE_SOFTWARE, shadowPaints);

我的结果是 如您所见,我的阴影实际上是另一个具有不同 x 和 y 位置的位图,但我想要的是我的阴影是纯色 位图。
谁能帮我解决这个问题?

setShadowLayer 实际上是为了在文本上放置阴影。

如果您已经知道要绘制的位图,只需在 PhotoShop 中添加一个阴影,即可同时绘制位图和阴影。

如果您不想这样做,可以通过复制图像 using a PorterDuff filter to make it all grey, use Renderscript to blur the image 来制作阴影,然后将其绘制在 canvas 的 x,y 偏移处在其上绘制实际图像之前。

就我个人而言,我认为 PhotoShop 更容易。