Как нарисовать крупногабаритный текст на холсте?
Я хочу нарисовать на холсте текст месяца вертикально по высоте экрана.
Paint init:
this.paint = new Paint();
this.paint.setAntiAlias(true);
this.paint.setDither(true);
this.paint.setSubpixelText(true);
this.paint.setColor(color_text_dark);
this.paint.setTextAlign(Align.RIGHT);
Рисунок:
// Set the scale to the widest month
float scale = getHeight() / this.max_month_width;
String month_string = FULL_MONTH_NAME_FORMATTER.
format(active_month_calendar.getTime());
canvas.save();
canvas.translate(getWidth(), 0);
canvas.rotate(-90);
canvas.scale(scale, scale);
c,anvas.drawText(month_string, 0, 0, this.paint);
canvas.restore();
Результат выглядит хорошо наИПЧР экран, но очень уродливый и неровный наxhdpi один.
Я провел больше тестов на разных устройствах и понял, какой результат зависит от версии Android, а не от плотности экрана и разрешения.
Код отлично работает на платформе 2.x, но не работает на 4.0.3+. Предположим, реализация Android Draw здесь была изменена. Полный код вы можете увидетьВот.
ИПЧР версия2.3.5 (также проверено2,2)
xhdpi версия4,2 (также проверено4,1, 4.0.3)
Пробуя различные варианты сглаживания, субпиксельный текст не действует. Как я могу исправить эту проблему?