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
}
}
有没有办法使小面积箭头指向不覆盖其下方的视图