Blackberry поддерживает несколько экранов

Я разработал свое приложение BlackBerry для экрана с разрешением 320x240 пикселей. Теперь мне нужно, чтобы он поддерживал экраны с несколькими разрешениями. Где мне хранить изображения для разных разрешений и получать к ним доступ через код, не создавая отдельной сборки для каждого разрешения экрана?

Если возможно, предоставьте мне различные размеры экранов, доступных для BlackBerry, которые необходимо перенести.


person Hades    schedule 08.05.2012    source источник


Ответы (2)


Разные разрешения экрана -

240 x 240  7730
240 x 320  8220 8230 
320 x 240  8520 9300 9330 8310 8530 8830 8320 8330 8700c 8820 8800 8300 8707v 8330 8500 
curve3G 9220
360 x 400  9670 9105 9100 pearl3G
360 x 480  9800 9500 9370 9350 9780 9520 9550 9530 9670 
480 x 320  9000
480 x 360  9650 9700 9630 8900 9360 
480 x 800  9860 9850 storm3 volt
640 x 480  Bold 9900

int device_h = Display.getHeight();
int device_w = Display.getWidth();


 if(device_h==240  &&  device_w== 320 ){
 //select image of that size
  }
 else  if(device_h==480 &&  device_w== 360){
 //select image of that size
 } and so on.....

Храните различные изображения в отдельной папке в папке res вашего проекта.

person Signare    schedule 08.05.2012
comment
Хороший ответ @Signare. Я хочу вам предложить еще кое-что. Используйте статическую переменную с именем folderName и получите имя папки в соответствии с разрешением экрана, указанным в ответе. Теперь вы можете использовать путь к изображению, например, res / + folderName + / xyz.png - person Vivek Kumar Srivastava; 09.05.2012
comment
четкость изображения пропадет (иногда). или выглядит растянутым. Если на вашем изображении есть текст, он будет растянут или перекошен. - person Signare; 09.05.2012

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

int barW = Fixed32.div(Fixed32.toFP(bitmap.getWidth()), Fixed32.toFP(scaleW));
int barH = Fixed32.div( Fixed32.toFP(bitmap.getHeight()), Fixed32.toFP(scaleH)); 
Bitmap scaledBitmap = 
  EncodedImage.getEncodedImageResource(img).scaleImage32(barW, barH).getBitmap();

Кажется, это тоже нормально работает :)

person Hades    schedule 09.05.2012