Blackberry - ListField with images from the file system

I use the following code to extract an image from a phone or SDCard, and I use this image for my list. It gives a way out, but it takes a very long time to create a screen. How to solve this problem?? Can someone help me ?? Thanks in advance.

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){} 
+4
source share
1 answer

You should read the files once (when you start the application or before opening the screen, maybe there is a progress dialog there), put the images in an array and use this array in paint.

+6
source

Source: https://habr.com/ru/post/1308227/


All Articles