Can I draw outside the bounds of an Android Canvas

前端 未结 5 1153
我在风中等你
我在风中等你 2020-11-29 06:27

I\'m porting an app written in a graphics environment that allows drawing to happen outside the bounds of the clipping rectangle. Any way to do this in Android?

5条回答
  •  时光取名叫无心
    2020-11-29 07:02

    If you want to draw text out of bounds in TextView, you should be doing this instead:

    
    

    It's not working to use clipRect() like @numan's answer because TextView clip it's own rect in onDraw():

    if (mShadowRadius != 0) {
        clipLeft += Math.min(0, mShadowDx - mShadowRadius);
        clipRight += Math.max(0, mShadowDx + mShadowRadius);
    
        clipTop += Math.min(0, mShadowDy - mShadowRadius);
        clipBottom += Math.max(0, mShadowDy + mShadowRadius);
    }
    
    canvas.clipRect(clipLeft, clipTop, clipRight, clipBottom);
    

    Last but not least, Don't forget to set android:clipChildren="false" and android:clipToPadding="false" in your parent ViewGroup

提交回复
热议问题