是否可以在Android中为自定义形状添加阴影?浏览完文档后,我只看到了一种应用文本阴影的方法.
我试过这个没有运气:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#90ffffff"/>
<corners android:radius="12dp" />
<item name="android:shadowColor">#000000</item>
<item name="android:shadowRadius">5</item>
<item name="android:shadowDy">3</item>
</shape>
Run Code Online (Sandbox Code Playgroud) 
正如你在图像中看到的那样,我想要一个背后的阴影Button.我创造Button了圆角.但问题是我不能在背后产生阴影Button.我怎样才能做到这一点?
我使用以下调用在画布上绘制一个位图:
_playerImage = BitmapFactory.decodeResource(getResources(), R.drawable.player);
Run Code Online (Sandbox Code Playgroud)
我现在怎么能把这张图片变成白色?当敌人被子弹击中时,我正试图使图像像顶部卷轴一样闪烁白色.
我需要使用BitmapFactory以外的东西吗?
根据原始问题,最终结果是圆形矩形png,ImageView具有自然的下垂阴影.
我有阴影工作,但当它绘制时,它会使整个图像变黑.

添加阴影时,如何防止原始图像(绝对不是黑色)变黑?
BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);
int[] offsetXY = new int[2];
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
Canvas c = new Canvas(shadowImage);
c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null);
imageView.setImageBitmap(shadowImage);
Run Code Online (Sandbox Code Playgroud)
更新:
我实现了Josh关于复制到正确色彩空间的建议,现在它的效果非常好!对于未来的搜索者,此代码会在图像视图上生成阴影.您可以使用x和y,以及OUTER常量来获得所需的效果.
BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);
int[] offsetXY = new int[2];
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
Bitmap shadowImage32 = …Run Code Online (Sandbox Code Playgroud)