У меня есть пользовательский TextView
, который просто добавляет точку слева от текста, цвет точки определяется внутренним состоянием.Однако гравитация не может быть установлена (в представлении или в формате XML), и текст перекрывается точкой, как вы можете видеть ниже (я установил серый цвет фона).Размеры правильно установлены, хотя.Есть идеи о том, где может быть проблема?
private var radius = 10.0f
private var newHeight = 0
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
val radiusInPixel = Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, radius, resources.displayMetrics))
val diameter = 2 * radiusInPixel
newHeight = Math.max(measuredHeight, diameter)
setMeasuredDimension(measuredWidth + diameter + 30, newHeight)
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
paint.color = when (status) {
Status.ACTIVE -> Color.GREEN
else -> Color.TRANSPARENT
}
canvas.drawCircle(radius, newHeight / 2f + 3, radius, paint)
}