Если бы я инициализировал 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), чтобы текст можно было рисовать на холсте? (Как можно дешевле)