Есть 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 МБ, поэтому вам решать, будет ли использование изображений для каждого поддерживаемого разрешения слишком большим для получающегося в результате вашего приложения.