Android - 为位图添加正确的阴影

时间:2017-12-25 18:09:13

标签: android bitmap

我正在尝试使用以下代码片段为位图添加正确的阴影:

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;
}

事实上,似乎没有工作,我根本没有看到任何影子。

请知道为什么它不起作用并建议修复它?

1 个答案:

答案 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;
    }