Я вложил в подкласс TextView
, чтобы предоставить пользовательский onDraw.Но к холсту применена область обрезки, которая не имеет смысла: x
настроен на что-то значительно выходящее за границы просмотра.Я думаю , что мешает моим целям.
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
// draw numberLabel
if (numberLabel == 0)
return
val right = this.width - this.resources.getDimension(R.dimen.topNavBadgeEndMargin)
// top needs to add the top margin and estimated text height
val top = this.resources.getDimension(R.dimen.topNavBadgeTopMargin) + this.badgePaint.textSize
canvas.drawText(numberLabel.toString(), right, top, this.badgePaint)
val r = Rect()
canvas.getClipBounds(r)
Log.d("TopNav", "canvas.clipBounds: $r")
}
Напечатано Logcat:
D / TopNav: canvas.clipBounds: Rect (524187, 0 - 524389,147)
К вашему сведению, я также пытался нарисовать круг r = 50 center = (100,100), и он не отображается.Так что поможет: а) почему это происходит?б) Я знаю, что нет способа сбросить область клипа, но есть ли способ, который бы мне помог?