【问题标题】:Effect shadow in rectangle canvas矩形画布中的效果阴影
【发布时间】:2012-05-23 09:44:15
【问题描述】:

我已经用画布绘制了一个矩形,不知道是否有任何属性或方法可以提供小阴影。

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);
}

谢谢

【问题讨论】:

    标签: android canvas shadow


    【解决方案1】:

    This问题包含以下代码:

        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); 
    

    所以根据您的需要对其进行一些定制,这样就可以了。

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

    【讨论】:

    • 感谢您这么快的回答,不是因为我将此代码添加到我的代码中,而是我编辑帖子并添加我的 onDraw() 方法
    • 请注意,paint.setShadowLayer() 不适用于硬件加速(请参阅developer.android.com/guide/topics/graphics/…
    • @Thierry-DimitriRoy 那你可以用什么代替它呢?看起来您可能已经有了答案,而这个问题的新答案可能对那些使用硬件加速的人有所帮助。
    • @JaySnayder 您必须使用 PNG 来模拟投影。请注意,L 预览添加了对带有硬件加速的阴影的支持。
    • 我可以在文字周围画阴影,但它很轻。如何使阴影层变暗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 2015-08-04
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多