private void CalculateText() {
paint.setTextSize(mFontSize);
//获得字宽
if (mLineWidth == 0) {
paint.getTextWidths("正", widths);//获取单个汉字的宽度
paint.getTextWidths(" ", space);
// mLineWidth = (int) Math.ceil((widths[0] + space[0]) * 1.1 + 2);
mLineWidth = (int) Math.ceil((widths[0] + space[0]) * 1.1 + 2) //获得字体宽度
+ DisplayUtil.dp2px(getContext(), 2); //增加间距
}
FontMetrics fm = paint.getFontMetrics();
// mFontHeight = (int) (Math.ceil(fm.descent - fm.top) * 0.9);// 获得字体高度
mFontHeight = (int) (Math.ceil(fm.descent - fm.ascent)) // 获得字体高度
+ DisplayUtil.dp2px(getContext(), 2); //增加间距
//计算文字行数
mRealLine = 0;
for (int i = 0; i < this.TextLength; i++) {
ch = this.text.charAt(i);
if (ch == '\n') {
mRealLine++;// 真实的行数加一
h = 0;
} else {
h += mFontHeight;
if (h > this.mTextHeight) {
mRealLine++;// 真实的行数加一
i--;
h = 0;
} else {
if (i == this.TextLength - 1) {
mRealLine++;// 真实的行数加一
}
}
}
}
mRealLine += 1;//额外增加一行
mTextWidth = mLineWidth * mRealLine;//计算文字总宽度
measure(mTextWidth, getHeight());//重新调整大小
layout(getLeft(), getTop(), getLeft() + mTextWidth, getBottom());//重新绘制容器
}
MultipleVerticalTextView.java 文件源码
java
阅读 18
收藏 0
点赞 0
评论 0
项目:Diary
作者:
评论列表
文章目录