当String过长时需要根据可显示的宽度来截取String

当你开发的时候,也许你会遇到这样的一个问题:只有给你100px的宽度显示文件名字时,就必须考虑但文件名的长度超过100px时如何处理,也许会自己去计算100px可以显示多少个字母,但在android里显示的字符是不等宽的(也就说L要比l占更多的像素),并且当显示的不是语言不是English,而是汉语的字时,显然用这种方法是不可以满足的,我的朋友找到了一种简单的方法可以处理这样的问题:

原始方法:
String displayname = “abcedhkkjjll汉化”;
if (displayname.length() > 15) { String temp =
displayname.substring(0, 15) + "..."; canvas.drawText(temp, 0,
temp.length(), xPos, yPos + h + 10, tPaint); } else {
canvas.drawText(displayname, xPos, yPos + h + 10, tPaint); }



改善方法:
String displayname = “呵呵呵呵呵呵呵呵呵呵”;
int count = tPaint.breakText(displayname, true, 100f, null);

System.out.println(" ImageGallery breakText count=" + count);
if (count < displayname.length()) {
String temp = displayname.substring(0, count) + "...";
canvas.drawText(temp, xPos, yPos + h + 10, tPaint);
} else {
canvas.drawText(image.getDisplayName(), xPos, yPos + h + 12,
tPaint);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值