android绘制黑色画面,如何防止Android的drawBitmap只绘制黑色图像?

根据

original question,最终的结果是在一个具有自然阴影的ImageView中的圆角。

我有阴影工作,但当它画,它使整个图像变黑。

添加影子时,如何防止原始图像(绝对不是黑色)变黑?

BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);

Paint shadowPaint = new Paint();

shadowPaint.setMaskFilter(blurFilter);

int[] offsetXY = new int[2];

Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);

Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);

Canvas c = new Canvas(shadowImage);

c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null);

imageView.setImageBitmap(shadowImage);

更新:

我实现了乔希关于复制到正确的颜色空间的建议,现在它的效果非常好!对于将来的搜索者,此代码在图像视图上产生阴影。您可以玩x和y,以及OUTER常数来获得所需的效果。

BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);

Paint shadowPaint = new Paint();

shadowPaint.setMaskFilter(blurFilter);

int[] offsetXY = new int[2];

Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);

Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);

Bitmap shadowImage32 = shadowImage.copy(Bitmap.Config.ARGB_8888, true);

Canvas c = new Canvas(shadowImage32);

c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null);

imageView.setImageBitmap(shadowImage32);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值