У меня есть список карт.Эти карты содержат изображения.Поэтому мне нужно создать пользовательский фрейм для изображения с нижним информационным блоком.
Он должен быть настраиваемым, потому что я несколько раз использую его diff-версию.
Я пытался создатьПользовательская группа представлений с ImageView, одним TextView и одним Path с угловым радиусом, но это сложно, потому что я не могу нарисовать TextView поверх пути, который находится над ImageView.
override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
imageView.layout(
left,
top,
right,
bottom - 50
)
textView.layout(
500, 700,
600,
800
)
}
override fun dispatchDraw(canvas: Canvas?) {
super.dispatchDraw(canvas)
canvas!!.drawPath(mBottomShape, mBottomShapePaint)
}
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
viewWidth = MeasureSpec.getSize(widthMeasureSpec)
viewHeight = MeasureSpec.getSize(heightMeasureSpec)
val bottom = viewHeight - 50
mBottomShape.moveTo(viewWidth * 0.47F, bottom.toFloat() * 1.01f)
mBottomShape.lineTo(viewWidth * 0.53F, bottom * 0.99F)
mBottomShape.lineTo(viewWidth * 0.55F, bottom * 0.93F)
mBottomShape.lineTo(viewWidth * 0.7F, bottom * 0.93F)
mBottomShape.lineTo(viewWidth * 0.72F, bottom * 0.99F)
mBottomShape.lineTo(viewWidth * 0.78F, bottom.toFloat() * 1.01f)
mBottomShape.close()
setMeasuredDimension(viewWidth, viewHeight)
}
Что мне нужнодостичь: