如何在 android 中创建图标阴影

How to create icon shadow in android

只是为了学习,我想知道当我们在网格上拖动应用程序图标时,如何在 nova 启动器中创建阴影图像,我在 Google 中搜索了一整天,但我不是能够找到任何建议,所以如果你们知道它是如何绘制的,那将会更有帮助。

提前致谢。

编辑: 经过位学习后,可以用下面的代码实现。

public static Bitmap getShadowBitmap(Bitmap src) {
    Bitmap bmOut = Bitmap.createBitmap(src.getWidth(),
            src.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bmOut);
    canvas.drawColor(0, PorterDuff.Mode.CLEAR);

    Paint ptBlur = new Paint();
    ptBlur.setMaskFilter(new BlurMaskFilter(5, BlurMaskFilter.Blur.NORMAL));
    int[] offsetXY = new int[2];
    Bitmap bmAlpha = src.extractAlpha(ptBlur, offsetXY);
    Paint ptAlphaColor = new Paint();
    ptAlphaColor.setColor(Color.WHITE);
    canvas.drawBitmap(bmAlpha, offsetXY[0], offsetXY[1], ptAlphaColor);
    bmAlpha.recycle();

    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT));
    paint.setColor(Color.TRANSPARENT);

    paint.setAlpha(0);

    canvas.drawBitmap(src, 0, 0, paint);

    return bmOut;
}

结果:

您可以使用 canvas 来获取图像图标的边界,并可以使用 canvas 上的路径创建所需颜色的轮廓,或者您可以使用像下面这样的库来获得一些想法它是如何工作的。

https://github.com/DevLight-Mobile-Agency/ShadowLayout