Может ли setTextSize () быть независимым от плотности? - PullRequest
0 голосов
/ 04 декабря 2011

Если бы я инициализировал Paint и установил размер текста следующим образом:

Paint = new Paint();
Paint.setAntiAlias(true);
Paint.setARGB(255, 255, 0, 0); 
Paint.setTextSize(screenWidth/100);

//screenWidth is the width of the screen in pixels given via display metrics.

А затем нарисуйте текст на холсте следующим образом:

String text = "Hello"
canvas.drawText(text, (screenWidth/13), (screenHeight/5), Paint);

Будет ли текст отображаться в одном и том же относительном месте одинакового относительного размера независимо от показателей экрана? Я спрашиваю, потому что у меня есть только 1 устройство, и эмулятор не очень хорошо работает на моей многоядерной машине.

То, что я делал до этого момента, это просто использование растрового изображения с текстом, написанным поверх фона, но мое использование памяти становится довольно интенсивным, поэтому я стараюсь сократить количество загружаемых растровых изображений.

Другой вариант - сохранить текст как растровое изображение с прозрачным фоном и наложить его на один растровый фон. Но это, кажется, вдвое менее продуктивно, поскольку фактически создает еще 1 растровое изображение, просто уменьшая общий размер всех сохраненных растровых изображений. Мне также не нравится эта идея, потому что я в конечном итоге хотел бы получить больший контроль над жизненным циклом объекта, и это сделает его менее эффективным.

Кроме того, существует ли какой-либо метод добавления стилей к тексту (например, сложные шрифты и цветные рисунки, помимо использования готовых Drawables), чтобы текст можно было рисовать на холсте? (Как можно дешевле)

1 Ответ

0 голосов
/ 04 декабря 2011

NVM, решено Обдумывая весь день, я понял, что модули DP могут вызываться из папки res и будут давать довольно равномерную позицию текста.и эта краска не так удобна для настройки, как мне бы хотелось.

...