Android Paint setShadowLayer() ignores color of its Paint

我的梦境 提交于 2019-12-05 03:36:12

You have made your inner bitmap too small and it custs the edges of the rectange. Try this:

    Bitmap outerBm = Bitmap.createBitmap( 
            rect.width(), rect.height(), Bitmap.Config.ARGB_8888); 
    Bitmap innerBm = Bitmap.createBitmap( 
            rect.width() + 50, rect.height() + 50, Bitmap.Config.ARGB_8888); 

    Canvas outerCanvas = new Canvas(outerBm); 
    Canvas innerCanvas = new Canvas(innerBm); 
    outerCanvas.rotate(3); 

    rect.left += 25; 
    rect.top += 25; 
    rect.right -= 25; 
    rect.bottom -= 25; 

    Paint shadowPaint = new Paint();
    shadowPaint.setColor(Color.BLUE);; 
    shadowPaint.setShadowLayer(12, 12, 12, 0xFF555555); 

    innerCanvas.drawRect(rect, shadowPaint); 

    outerCanvas.drawBitmap(innerBm, 0, 0, null); 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!