出于学习目的,我想知道当我们在网格上拖动应用程序图标时,如何在nova启动器中创建阴影图像,我在谷歌搜索了一整天,但我找不到任何建议,所以,如果你们知道如何绘制它会更有帮助。
提前致谢。
编辑: 在做了位学习后,能够用下面的代码实现。
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;
}
答案 0 :(得分:0)
您可以使用画布来获取图像图标的边界,并可以使用画布上的路径创建所需颜色的轮廓,或者您可以使用像bellow这样的库来了解它是如何工作的。