2012-05-08 81 views
0

我开发了我的BlackBerry应用程序,屏幕分辨率为320x240。现在我需要它来支持多种分辨率的屏幕。 我在哪里可以存储不同分辨率的图像,并通过代码相应地访问它们,而无需为每个屏幕分辨率单独构建?支持多屏幕的黑莓

如果可能,请为我提供可用于BlackBerry的各种屏幕尺寸,这些尺寸需要移植。

回答

1

不同的屏幕分辨率是 -

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文件夹。

+0

640×480 - 粗体9900 –

+0

尼斯回答由@Signare给出。还有一件事我喜欢建议你。使用名称为“folderName”的静态变量,并根据回答中给出的屏幕分辨率获取文件夹名称。现在,您可以使用像“res /”+ folderName +“/ xyz.png”图像路径 –

+0

图像清晰度将消失(有时)。或者看起来像拉伸。如果图像上有一些文字,那么它会被拉伸或倾斜。 – Signare

0

是不是会增加项目的大小? 笏我发现是你可以根据使用下面的代码的设备大小存储良好分辨率的影像,并扩展他们

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(); 

这似乎好工作太:)