我有自定义视图,可以将其裁剪到左右边缘。在没有高程的情况下可以正常工作,但是当有高程时,阴影无法正确显示,如下图所示。我该怎么做才能正确显示阴影。
这是我的代码。
override fun draw(canvas: Canvas?) {
leftClipPath.arcTo(
RectF(-50f, (height/2).toFloat() - 50f, 50f, (height/2).toFloat() + 50f),
270f, 180f
)
rightClipPath.arcTo(
RectF(width.toFloat() -50f, (height/2).toFloat() - 50f, width.toFloat() + 50f, (height/2).toFloat() + 50f),
90f, 180f
)
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
canvas?.clipOutPath(leftClipPath)
canvas?.clipOutPath(rightClipPath)
} else {
canvas?.clipPath(leftClipPath, Region.Op.DIFFERENCE)
canvas?.clipPath(rightClipPath, Region.Op.DIFFERENCE)
}
super.draw(canvas)
}
具有海拔的CustomView。
不带高程的CustomView。