Android 如何使“Paint.setShadowLayer”方法绘制的阴影区域不覆盖其下方视图

Android 如何使“Paint.setShadowLayer”方法绘制的阴影区域不覆盖其下方视图,android,Android,我可以从上面的图片中看到,有一个区域是看不见的。它被底部视图所覆盖 底部视图代码如下所示 class ShadowTopRoundRectDrawable(private val mContext: Context) : Drawable() { private val radius: Float = dpF(24, mContext) private val padding: Float = dpF(15, mContext) private val to

我可以从上面的图片中看到,有一个区域是看不见的。它被底部视图所覆盖

底部视图代码如下所示

class ShadowTopRoundRectDrawable(private val mContext: Context) : Drawable() {

    private val radius: Float = dpF(24, mContext)
    private val padding: Float = dpF(15, mContext)

    
    private val topPaint: Paint = Paint().apply {
        isAntiAlias = false
        color = clr(R.color.bhBackground_alpha, mContext)
        setShadowLayer(padding, 0F, dpF(15, mContext), Color.parseColor("#802F4668"))
//        xfermode = PorterDuffXfermode(PorterDuff.Mode.CLEAR)
    }

    private val rectF = RectF()
    private val path = Path()

    override fun draw(canvas: Canvas) {
//        LogUtils.d("draw canvas is hardwareAccelerated == ${canvas.isHardwareAccelerated}")
        rectF.set(bounds.left.toFloat(), bounds.top + padding, bounds.right.toFloat(), bounds.bottom.toFloat())
        path.reset()
        path.addRoundRect(rectF, floatArrayOf(radius, radius, radius, radius, 0F, 0F, 0F, 0F), Path.Direction.CCW)
        canvas.drawPath(path, topPaint)
    }

    override fun setAlpha(alpha: Int) {
        topPaint.alpha = alpha
        invalidateSelf()
    }

    override fun setColorFilter(colorFilter: ColorFilter?) {
        topPaint.colorFilter = colorFilter
        invalidateSelf()
    }

    override fun getOpacity(): Int {
        return PixelFormat.TRANSPARENT
    }

}
有没有办法使小面积箭头指向不覆盖其下方的视图