我已经对此进行了一些广泛的代码示例搜索,但找不到任何内容。
特别是,我希望向在 ImageView 中使用的 png 可绘制对象添加阴影。这个 png 可绘制对象是一个带有透明角的圆角矩形。
有人可以提供一个代码示例,说明如何在代码或 XML 中向视图添加合适的阴影吗?
您可以使用 Bitmap.extractAlpha 和 BlurMaskFilter 的组合来手动为需要显示的任何图像创建阴影,但这仅在您的图像仅偶尔加载/显示一次时才有效,因为该过程非常昂贵。
伪代码(甚至可以编译!):
BlurMaskFilter blurFilter = new BlurMaskFilter(5, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);
int[] offsetXY = new int[2];
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
/* Might need to convert shadowImage from 8-bit to ARGB here, can't remember. */
Canvas c = new Canvas(shadowImage);
c.drawBitmap(originalBitmap, offsetXY[0], offsetXY[1], null);
然后将shadowImage放入你的ImageView中。如果此图像从不更改但显示很多,您可以创建它并将其缓存在 onCreate 中以绕过昂贵的图像处理。
即使这不起作用,也足以让您朝着正确的方向前进。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)