android Paint.setShadowLayer()vs Canvas.drawbitmap()问题该怎么解决

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (50)

我使用以下代码在自定义视图的onDraw期间绘制位图:

Paint p = new Paint(Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);
p.setShadowLayer(3,3,3,0xff000000);
Bitmap bmp = BitmapFactory.decodeResource(some drawable jpg);
canvas.drawBitmap(bmp,null,new Rect(blah blah),p);

你可以尝试添加p.setColor(0xff000000); 和p.setStyle(Paint.Style.FILL); 但没有区别。

提问于
用户回答回答于

当硬件加速视图树不存在的时候,这个问题被提出来了。根据我读过的东西,即使阴影图层只适用于简单形状(如果有的话),其他人也得到了奇怪的结果任何东西,但文字 你可能不走运。

最后,有很多方法可以伪造阴影图层。您可以将视图包装在另一个视图中并在其下面绘制。您可以编写一个视图,将自己的阴影绘制为径向渐变等。但是,你可能只是想制作一个看起来像阴影并使用它的9patch。

扫码关注云+社区

领取腾讯云代金券