似乎Paint.measureText()函数对于所有语言都不正确

时间:2014-04-17 12:52:43

标签: android text measure

我已经实现了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];
        }

0 个答案:

没有答案