我已经实现了ellipsize文本函数,该函数对于英文字符串非常正确。当作为Deutch应用于某些语言时,字符串不会被正确截断。在调试后,我得出结论,measureText无法正常工作。这是我的代码:
for (int i = 0; i < valueCount; i++) {
textWidth = mSelectorWheelPaint.measureText(mOriginalValues[i]);
if (textWidth > maxStringWidth) {
float diff = textWidth - maxStringWidth;
int numlettersToSubstract = Math.round(diff / oneLetterWidth);
int length = mOriginalValues[i].length();
mDisplayedValues[i] = mOriginalValues[i].substring(0,
(length - 1) - (numlettersToSubstract + 3));
if (!CustomLocaleUtil.isRTL()) {
mDisplayedValues[i] = String.format("%s...",
mDisplayedValues[i]);
} else {
mDisplayedValues[i] = String.format("...%s",
mDisplayedValues[i]);
}
} else {
mDisplayedValues[i] = mOriginalValues[i];
}