Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将文本可绘制设置为与edittext中的文本大小相同_Android - Fatal编程技术网

Android 将文本可绘制设置为与edittext中的文本大小相同

Android 将文本可绘制设置为与edittext中的文本大小相同,android,Android,我面临以下问题,我需要实施此设计: 这里有一个edittext(2000是其中的文本)和一个不可更改的部分(美元符号)。我决定将美元符号设置为可支取,然后将其设置为复合可支取。为此,我添加了以下类: class TextDrawable( private val context: Context, private val text: String ) : Drawable() { private val paint: Paint = Paint() overr

我面临以下问题,我需要实施此设计:

这里有一个edittext(2000是其中的文本)和一个不可更改的部分(美元符号)。我决定将美元符号设置为可支取,然后将其设置为复合可支取。为此,我添加了以下类:

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中的文本小