矩形画布中的效果阴影

13 android canvas shadow

我画了一个带有画布的矩形,我想知道是否有任何属性或方式给出一个小阴影.

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Paint pincel1 = new Paint();
    pincel1.setColor(Color.rgb(151, 217, 69));
    RectF rectangle = new RectF(30, 20,200,100);
    canvas.drawRoundRect (rectangle, 6, 6, pincel1);
}
Run Code Online (Sandbox Code Playgroud)

谢谢

eri*_*hak 35

这个问题包含以下代码:

    Paint mShadow = new Paint();  
// radius=10, y-offset=2, color=black  
mShadow.setShadowLayer(10.0f, 0.0f, 2.0f, 0xFF000000);  
// in onDraw(Canvas)  
canvas.drawBitmap(bitmap, 0.0f, 0.0f, mShadow); 
Run Code Online (Sandbox Code Playgroud)

因此,根据您的需求进行一些定制,这样就可以了.

在您的情况下,只需添加pincel1.setShadowLayer(10.0f, 0.0f, 2.0f, 0xFF000000);到您的代码.

  • 需要注意的是paint.setShadowLayer()不带硬件加速的工作(见http://developer.android.com/guide/topics/graphics/hardware-accel.html#unsupported) (17认同)
  • @JaySnayder 你必须使用 PNG 来模拟阴影。请注意,L 预览添加了对硬件加速阴影的支持。 (2认同)