Jak narysować duży tekst na płótnie?

Chcę narysować tekst na płótnie w pionie wzdłuż wysokości ekranu.

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);

Rysunek:

   // 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);
   canvas.drawText(month_string, 0, 0, this.paint);
   canvas.restore();

Wynik wygląda dobrzehdpi ekran, ale bardzo brzydki i pikselowanyxhdpi jeden.

Zrobiłem więcej testów na różnych urządzeniach i zrozumiałem, jaki wynik zależy od wersji Androida, a nie gęstości ekranu i rozdzielczości.

Kod działa dobrze na platformie 2.x, ale nie działa na 4.0.3+. Załóżmy, że tutaj została zmieniona implementacja rysowania Androida. Pełny kod, który możesz zobaczyćtutaj.

hdpi wersja2.3.5 (również testowane2.2)

xhdpi wersja4.2 (również testowane4.1, 4.0.3)

Próbując różnych odmian antialias farby, subpiksel nie ma wpływu. Jak mogę rozwiązać ten problem?

questionAnswers(2)

yourAnswerToTheQuestion