Динамическое изменение размера фонового изображения в зависимости от размера экрана - PullRequest
2 голосов
/ 23 марта 2011

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

Ответы [ 3 ]

3 голосов
/ 23 марта 2011

Имейте в виду, что многие устройства BlackBerry имеют разное разрешение экрана и даже разные пропорции. Поэтому, если вы просто используете одно изображение и изменяете его размеры (растягиваете и / или сжимаете), чтобы оно соответствовало текущему экрану, вы будете искажать изображение (или рисунок). На мой взгляд, есть два основных подхода:

1) Используйте разные изображения для каждого разрешения экрана. Существует около 7 различных разрешений, которые покрывают большинство устройств на рынке (240x260, 240x320, 320x240, 360x400, 360x480, 480x320, 480x360)

2) Если это обычный фоновый узор в отличие от изображения или логотипа, просто поместите в приложении одно изображение, которое достаточно большое, чтобы покрыть самый большой размер экрана (480x360), а для всех остальных размеров экрана просто обрежьте его. На самом деле, я думаю, это должно произойти автоматически, если вы просто установите фоновое изображение - все, что не может быть отображено на экране, будет обрезано.

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

3 голосов
/ 23 марта 2011
0 голосов
/ 24 марта 2011

Я думаю, что самым простым методом было бы использование метода setBorder для любого экрана / поля, где требуется растянутый фон.Например:

Border b = BorderFactory.createBitmapBorder (new XYEdges (), bitmap);
field.setBorder(b);

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

...