Android - 向位图添加右阴影

问题描述 投票:0回答:1

我正在尝试使用下面的代码片段向位图添加右侧阴影:

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

它似乎不起作用,事实上,我根本没有看到任何阴影。

请问您知道为什么它不起作用以及修复它的建议吗?

android bitmap
1个回答
0
投票

在将位图绘制到画布上之前,需要先绘制一个矩形,阴影层和位图层是独立的图层,需要将它们一层一层地绘制到画布上才能看到效果

    private static Bitmap drawBitmap(Bitmap bm) {
        Canvas canvas = new Canvas();
        Paint shadow = new Paint();

        shadow.setShadowLayer(10.0f, 40.0f, 0.0f, Color.RED);

        // Drawing shadow layer first before the bitmap
        canvas.drawRect((new Rect(0, 0, 0, 0)), shadow);

        canvas.drawBitmap(bm, 0.0f, 0.0f, shadow);

        return bm;
    }
© www.soinside.com 2019 - 2024. All rights reserved.