Android 字符串换行问题

不用了的号 2011-03-22 11:59:58
小弟新学Android 在这里向大家请教了
一大段的字符串传过来之后,我们要将其自动断行,
我在网上搜有这样一个方法 就是Paint.breakText 这个方法怎么使用
有什么好的方法 指点一下谢谢!
...全文
1029 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
不用了的号 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ultrapro 的回复:]
如果有问题的话,在调用Paint.setSubpixelText(true);
[/Quote]我用你的方法试了,可以显示一行,我想把所有的内容全部显示出来,应该怎么写了,还有,我在onDraw 中用循环 出来程序错误……
dinjay 2011-03-22
  • 打赏
  • 举报
回复
用testview显示,自动换行
儿大不由爷 2011-03-22
  • 打赏
  • 举报
回复
如果有问题的话,在调用Paint.setSubpixelText(true);
儿大不由爷 2011-03-22
  • 打赏
  • 举报
回复
public void onDraw(Canvas canvas)
{
int MARGIN = 1;
int BORDER_WIDTH = 1;

Paint p = new Paint();
p.setAntiAlias(true);
p.setTextSize(12);
p.setTypeface(Typeface.create(Typeface.SERIF, Typeface.NORMAL));

RectF rect = getRect();

float maxWidth = rect.width() - MARGIN - BORDER_WIDTH * 2;

String str = getText();
char[] chars = str.toCharArray();
int nextPos = p.breakText(chars, 0, chars.length, maxWidth, null);
str = str.substring(0, nextPos);

float textX = MARGIN + BORDER_WIDTH;
float textY = (float) (Math.abs(p.getFontMetrics().ascent) + BORDER_WIDTH + MARGIN);

canvas.drawText(str, textX, textY, p);

p.setStrokeWidth(BORDER_WIDTH);
p.setStyle(Style.STROKE);

canvas.drawRect(rect, p);
}

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧