如何在 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 上的路径创建所需颜色的轮廓,或者您可以使用像下面这样的库来获得一些想法它是如何工作的。
只是为了学习,我想知道当我们在网格上拖动应用程序图标时,如何在 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 上的路径创建所需颜色的轮廓,或者您可以使用像下面这样的库来获得一些想法它是如何工作的。