当你开发的时候,也许你会遇到这样的一个问题:只有给你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);
}