Я работаю над настраиваемым представлением, чтобы изменить размер текста внутри текстового представления, чтобы оно соответствовало (я не хочу многоточия).
Проблема, с которой я сталкиваюсь, заключается в том, что при измененииРазмер текста, само текстовое представление не переоценивается.Я посмотрел на источник и увидел, что setTextSize () вызывает следующее:
nullLayouts();
requestLayout();
invalidate();
Так что его следовало бы измерить заново.Это может быть ошибкой, потому что работает нормально на 2.3, а не на эмуляторах 1.6, 1.5 и 2.1.
Вот фрагмент кода, обратите внимание, что текстовое представление расширено:
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
if(w == 0 && h == 0) {
setTextSize(TypedValue.COMPLEX_UNIT_PX, defaultSize);
}
updateView();
}
private void updateView() {
int viewWidth = getViewWidth();
float textWidth = getTextWidth();
float textSize = textSize();
while(textWidth > viewWidth && textSize >= MIN_TEXT_SIZE) {
setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize-1);
textSize = getTextSize();
textWidth = getTextWidth();
}
}
Может кто-нибудь дать мне подсказку в правильном направлении, чтобы решить эту проблему?