我正在尝试使用以下代码片段为位图添加正确的阴影:
private static Bitmap drawBitmap(Bitmap bm) {
Canvas canvas = new Canvas();
Paint mShadow = new Paint();
mShadow.setShadowLayer(10.0f, 40.0f, 0.0f, Color.RED);
canvas.drawBitmap(bm, 0.0f, 0.0f, mShadow);
return bm;
}
事实上,似乎没有工作,我根本没有看到任何影子。
请知道为什么它不起作用并建议修复它?
答案 0 :(得分:0)
在将位图绘制到画布之前需要先绘制一个矩形,阴影层和位图层是分开的图层,需要将它们一一绘制到画布上才能看到效果
private static Bitmap drawBitmap(Bitmap bm) {
Canvas canvas = new Canvas();
Paint mShadow = new Paint();
mShadow.setShadowLayer(10.0f, 40.0f, 0.0f, Color.RED);
// Drawing shadow layer first before the bitmap
canvas.drawRect((new Rect(0, 0, 0, 0)), mShadow);
canvas.drawBitmap(bm, 0.0f, 0.0f, mShadow);
return bm;
}