Android 将文本可绘制设置为与edittext中的文本大小相同
我面临以下问题,我需要实施此设计: 这里有一个edittext(2000是其中的文本)和一个不可更改的部分(美元符号)。我决定将美元符号设置为可支取,然后将其设置为复合可支取。为此,我添加了以下类:Android 将文本可绘制设置为与edittext中的文本大小相同,android,Android,我面临以下问题,我需要实施此设计: 这里有一个edittext(2000是其中的文本)和一个不可更改的部分(美元符号)。我决定将美元符号设置为可支取,然后将其设置为复合可支取。为此,我添加了以下类: class TextDrawable( private val context: Context, private val text: String ) : Drawable() { private val paint: Paint = Paint() overr
class TextDrawable(
private val context: Context,
private val text: String
) : Drawable() {
private val paint: Paint = Paint()
override fun draw(canvas: Canvas) {
canvas.drawText(text, 0, text.length, bounds.centerX().toFloat(), bounds.centerY().toFloat(), paint)
}
override fun setAlpha(alpha: Int) {
paint.alpha = alpha
}
override fun setColorFilter(cf: ColorFilter?) {
paint.colorFilter = cf
}
override fun getOpacity() = PixelFormat.TRANSLUCENT
init {
paint.apply {
color = ContextCompat.getColor(context, R.color.colorCalculatorSum)
textSize = 26f
isAntiAlias = true
textAlign = Paint.Align.LEFT
}
}
}
然后我用这种方式加上美元符号:
binding.etSum.setCompoundDrawablesWithIntrinsicBounds(
TextDrawable(context, "$"),
null,
null,
null
)
但当我运行代码时,它看起来是这样的:
那么,问题出在哪里?我如何解决这个问题?您想在textView中添加$sign,但您说的是$sign的大小大于文本。我说的对吗?@xaif在我的例子中,它比edittext中的文本小