Как сделать так, чтобы интерфейс BlackBerry включал изображения таким образом, чтобы он работал на устройствах с разными разрешениями экрана? - PullRequest
0 голосов
/ 17 ноября 2011

Я занимаюсь разработкой приложения, которое будет работать на разных устройствах Blackberry.

640 x 480
800 x 480
360 X 480
320 X 240
480 X 360

Скажите, пожалуйста, как мне справиться с этими разрешениями.Я использовал Differnt PicturebackgroundField, EditFields и т. Д.

Ответы [ 4 ]

6 голосов
/ 19 ноября 2011

В Blackberry нет единого способа обработки разного разрешения.Вы можете использовать следующий способ:

CASE 1. Изменение размера и масштабирование изображений для различного разрешения.

CASE 2. Создание отдельной сборки путем включенияизображения для каждого целевого разрешения.

CASE 3. Создайте один исходный код и создайте другой файл cod для различного разрешения, заменив изображения.

плюсы иминусы:

СЛУЧАЙ 1: таким образом обеспечивают плохое качество.Масштабирование изображений PNG не дает хорошего результата.

CASE 2: этот способ будет хорош для небольшого проекта, который использует меньше изображений.

CASE 3:, используя этот способ, вы можете реализовать код макета в соответствии с высотой и шириной экрана, а затем создать приложение, заменив изображения для другого разрешения.Я думаю, что именно поэтому Blackberry предоставляет возможность загружать разные ХПК для разных разрешений.

0 голосов
/ 17 ноября 2011

Принимая ширину и высоту устройства и в соответствии с этим вы можете манипулировать:

 int width=Display.getWidth();
 int height=Display.getHeight();

Из этой ширины и высоты вы можете обрезать и масштабировать изображения.

0 голосов
/ 17 ноября 2011

Есть 2 подхода к этому, как с плюсом, так и с минусом:

1. Изменение размера изображений при запуске приложения

Включайте только изображения с наибольшим разрешением в ресурсы приложения, а затем уменьшайте их в зависимости от разрешения экрана устройства. У этого подхода есть две проблемы: 1. Изменение размера изображения может занять некоторое время, что может повлиять на время запуска. 2. Функция изменения размера BlackBerry не так уж велика и может создавать изображения с пикселизацией. Если вы хотите сделать это таким образом, вот код:

public class DisplayConfig {

    public static EncodedImage scaleImageToHeight(EncodedImage encoded, float newHeight) {
        return scaleToFactor(encoded, encoded.getHeight(), (int)newHeight);
    }

    public static EncodedImage scaleToFactor(EncodedImage encoded, int curSize, int newSize) {
        int numerator = Fixed32.toFP(curSize);
        int denominator = Fixed32.toFP(newSize);
        int scale = Fixed32.div(numerator, denominator);

        return encoded.scaleImage32(scale, scale);
    }
}

Пример использования:

EncodedImage titleLogoEnc = EncodedImage.getEncodedImageResource("title-background-logo.png");

if (currentDisplayFormat == SCREEN_FORMAT_320_BY_240){

    float scaleFactor = 2F/3; //0.6 recurring
    titleLogoEnc = DisplayConfig.scaleImageToHeight(titleLogoEnc, titleLogoEnc.getHeight() * scaleFactor);  
}

2. Включить изображения для каждого целевого разрешения

Если ваши изображения маленькие, начните с накладных расходов на размер файла, поскольку это минимально, а качество изображения намного лучше. Практический лимит для загрузки в App World составляет около 5 МБ, поэтому вам решать, будет ли использование изображений для каждого поддерживаемого разрешения слишком большим для получающегося в результате вашего приложения.

0 голосов
/ 17 ноября 2011

Вы можете изменить размер или масштабировать ваших изображений в соответствии с вашими требованиями к экрану, используя

BitMap_Instance.scaleInto(0, 0, image.getWidth(), image.getHeight(), ret, 0, 0, 
desiredWidth, desiredHeight, Bitmap.FILTER_BILINEAR);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...