Android 简单自定义TextView

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 简单自定义TextView相关的知识,希望对你有一定的参考价值。

参考技术A Canvas.drawText(text, x, y, paint) 中的参数y,指的是文字的基线(baseLine)。x 的值并不是最左边的字符的起点,绝大多数的字符,他们的宽度都是要略微大于实际显示的宽度,字符的左右会留出一部分空闲,用于文字之间的间隔,以及文字与边框之间的间隔。

FontMetircs getFontMetrics(),获取 Paint 的 FontMetrics。
FontMetrics 是个相对专业的工具类,它提供了几个文字排印方面的数值:ascent, descent, top, bottom, leading。

baseLine:基线

FontMetrics 提供的就是 Paint 根据当前字体和字号,得出的这些值的推荐值。它把这些值以变量的形式存储,供开发者需要时使用。

另外,ascent 和 descent 这两个值还可以通过 Paint.ascent() 和 Paint.descent() 来快捷获取。

计算baseLine
//计算基线
Paint.FontMetricsInt fontMetricsInt = cmPaint.getFontMetricsInt();
int dy = (fontMetricsInt.bottom - fontMetricsInt.top)/2 - fontMetricsInt.bottom;
int baseLine = getHeight()/2 + dy;

自定义CMTextVeiw:
https://github.com/hualianrensheng/CMViewDemo

文章引用:
Hencoder http://hencoder.com/ui-1-3/
Darren https://www.jianshu.com/p/b272528165a2

以上是关于Android 简单自定义TextView的主要内容,如果未能解决你的问题,请参考以下文章

Android使用popueWindow自定义Spinner

Android:自定义 TextView 膨胀异常

Android自定义View(初体验自定义TextView)

android在textview中自定义文本[重复]

将字体添加到自定义 Android TextView

Android:带有自定义标题的圆角TextView XML布局