2010-04-28 77 views
4

我使用以下代碼從手機或SDCard中檢索圖像,並將該圖像用於我的ListField。它給出了輸出,但它需要很長時間才能生成屏幕。如何解決這個問題呢 ??誰能幫我??提前致謝!!!Blackberry - ListField與來自文件系統的圖像

String text = fileholder.getFileName(); 
try{ 
String path="file:///"+fileholder.getPath()+text; 
//path=」file:///SDCard/BlackBerry/pictures/image.bmp」 

InputStream inputStream = null; 
//Get File Connection 
FileConnection fileConnection = (FileConnection) Connector.open(path); 

inputStream = fileConnection.openInputStream(); 

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
int j = 0; 
while((j=inputStream.read()) != -1) { 
baos.write(j); 
} 
byte data[] = baos.toByteArray();     
inputStream.close(); 
fileConnection.close(); 

//Encode and Resize image 
EncodedImage eImage = EncodedImage.createEncodedImage(data,0,data.length); 
int scaleFactorX = Fixed32.div(Fixed32.toFP(eImage.getWidth()), 
     Fixed32.toFP(180)); 
int scaleFactorY = Fixed32.div(Fixed32.toFP(eImage.getHeight()), 
     Fixed32.toFP(180)); 
eImage=eImage.scaleImage32(scaleFactorX, scaleFactorY); 
Bitmap bitmapImage = eImage.getBitmap(); 
graphics.drawBitmap(0, y+1, 40, 40,bitmapImage, 0, 0); 
graphics.drawText(text, 25, y,0,width); 
} 
catch(Exception e){} 

回答

6

你應該讀一次文件(在應用程序啓動或屏幕上打開之前,也許把進度對話框出現),把圖像陣列和塗料使用這個數組。

相關問題