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