Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8738985
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T10:50:53+00:00 2026-06-13T10:50:53+00:00

For some reason my blackberry application crashes whenever i try to display a bitmap

  • 0

For some reason my blackberry application crashes whenever i try to display a bitmap image from a URL using the internet.

I found the downloadImage() function very easy to understand and to follow compared to others on stackoverflow. The others didnt have any examples on how to implement their function. I have have tested the function downloadImage many times and all failed.

Please give explanation with code example. Thanks.

Anyway, The compiler stops at this point here:

g.drawBitmap(10, y + 6, 50, 50, imageBmp, 0, 0);

Here is the entire code:

package parsepack;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Vector;

import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.io.StreamConnection;

import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.DeviceInfo;
import net.rim.device.api.system.Display;
import net.rim.device.api.system.EncodedImage;
import net.rim.device.api.ui.DrawStyle;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.BitmapField;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.ListField;
import net.rim.device.api.ui.component.ListFieldCallback;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;
import net.rim.device.api.xml.parsers.DocumentBuilder;
import net.rim.device.api.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;



public class xmlparsing extends UiApplication implements ListFieldCallback, FieldChangeListener 
{

    public static void main(String[] args) throws IOException
    {
    xmlparsing app = new xmlparsing();
    app.enterEventDispatcher();
    }


public long mycolor ;
Connection _connectionthread;     
private static ListField _list;
private static Vector listElements = new Vector();
private static Vector listPrice = new Vector();
private static Vector listAbstract = new Vector();
private static Vector listIcon = new Vector();
private Vector listInfoVector = new Vector();
public MainScreen screen = new MainScreen();
Bitmap imageBmp = null;
VerticalFieldManager mainManager;
VerticalFieldManager subManager;
UiApplication ui = UiApplication.getUiApplication(); 


public  xmlparsing() throws IOException 
{ 
    super();
    pushScreen(screen);

    final Bitmap backgroundBitmap = Bitmap.getBitmapResource("blackbackground.png");

     mainManager = new VerticalFieldManager(Manager.NO_VERTICAL_SCROLL | Manager.NO_VERTICAL_SCROLLBAR )
        {

         public void paint(Graphics graphics)
          {
            graphics.drawBitmap(0, 0, Display.getWidth(),Display.getHeight(),backgroundBitmap, 0, 0);

            super.paint(graphics);
          }

        };

        subManager = new VerticalFieldManager(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR )
        {
            protected void sublayout( int maxWidth, int maxHeight )
            {
                int displayWidth = Display.getWidth();
                int displayHeight = Display.getHeight();

                super.sublayout( displayWidth, displayHeight);
                setExtent( displayWidth, displayHeight);
            }
        };        


    screen.add(mainManager);





    _list = new ListField()
    {
        public void paint(Graphics graphics)
        {
            graphics.setColor((int) mycolor);
            super.paint(graphics);
        }
        protected boolean navigationClick(int status, int time)
        {
            try
            {
                //navigate here to another screen
                ui.pushScreen(new ResultScreen());
            }
            catch(Exception e)
            {
                System.out.println("Exception:-  : navigationClick() "+e.toString());
            }
            return true;
        }
    }; 
    mycolor = 0x00FFFFFF;
        _list.invalidate();
        _list.setEmptyString("* Feeds Not Available *", DrawStyle.HCENTER);
    _list.setRowHeight(70);
    _list.setCallback(this);
    mainManager.add(subManager);    
   listElements.removeAllElements();
   listPrice.removeAllElements();
   listAbstract.removeAllElements();
   listIcon.removeAllElements();
   _connectionthread = new Connection(); 
   _connectionthread.start();
 }


private class Connection extends Thread
{ 
    public Connection()
    { 
       super(); 
    } 

    public void run() {  
        Document doc;  
        StreamConnection conn = null; 
        InputStream is = null;  
        try {           

            conn = (StreamConnection) Connector.open("http://imforchange.org/international-movement-for-change/testing/data.xml"+";deviceside=true");           

            DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();  
            docBuilderFactory.setIgnoringElementContentWhitespace(true);
            docBuilderFactory.setCoalescing(true);
            DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();    
            docBuilder.isValidating();      
            is = conn.openInputStream();    
            doc = docBuilder.parse(is);     
            doc.getDocumentElement().normalize();   
            NodeList list1 = doc.getElementsByTagName("eventName"); 
                for (int i = 0; i < list1.getLength(); i++) {    
                Node textNode = list1.item(i).getFirstChild();  
                listElements.addElement(textNode.getNodeValue());

                } 
                NodeList list2 = doc.getElementsByTagName("eventPrice"); 
                for (int i = 0; i < list2.getLength(); i++) {    
                Node textNode = list2.item(i).getFirstChild();  
                listPrice.addElement(textNode.getNodeValue());

                } 

                NodeList list3 = doc.getElementsByTagName("eventAbstract"); 
                for (int i = 0; i < list3.getLength(); i++) {    
                Node textNode = list3.item(i).getFirstChild();  
                listAbstract.addElement(textNode.getNodeValue());

                }

                NodeList list4 = doc.getElementsByTagName("eventIcon"); 
                for (int i = 0; i < list4.getLength(); i++) {    
                Node textNode = list4.item(i).getFirstChild();  
                listIcon.addElement(textNode.getNodeValue());

                }



                } catch (Exception e) {   
                    System.out.println(e.toString());                     
                    } finally {   
                        if (is != null) {  
                        try { is.close(); 
                        } catch (IOException ignored) {}   
                        }        if (conn != null) {  
                            try { conn.close(); } 
                            catch (IOException ignored) {} 
                            }    } UiApplication.getUiApplication().invokeLater(new Runnable() { 
                                public void run() {         
                                _list.setSize(listElements.size()); 
                                subManager.add(_list);
                                screen.invalidate();
                                }   
                                });
                            }





}




public void drawListRow(ListField list, Graphics g, int index, int y, int w) 
{  


    String text = (String)listElements.elementAt(index);
    String price = (String)listPrice.elementAt(index);
    String textAbstract = (String)listAbstract.elementAt(index);
    int yPos = 0+y;
    g.drawLine(0, yPos, w, yPos);
    g.drawText(text, 5, 15+y, 0, w);
    g.drawText("$"+price, 5, 15+y, DrawStyle.RIGHT, w-7);
    g.drawText(textAbstract, 5, 40+y, 0, w);



    // image to display
    String imageUrl = (String)listIcon.elementAt(index);
    imageBmp = downloadImage(imageUrl);
    g.drawBitmap(10, y + 6, 50, 50, imageBmp, 0, 0);
}



public Object get(ListField list, int index) 
{
    return listElements.elementAt(index); 
} 
public int indexOfList(ListField list, String prefix, int string) 
{ 
    return listElements.indexOf(prefix, string); 
} 
public int getPreferredWidth(ListField list) 
{ 
 return Display.getWidth(); 
}

/*Regarding the warning about insert(), that's just because you're not using it anywhere. 
 * It look like you've added that method to allow code outside the xmlparsing class to 
 * be able to insert items into the list. Maybe that's what you want, but you just 
 * haven't yet written the other code to use that method. I see you having at least a few choices:
 */
public void insert(String toInsert, int index) {
    listElements.addElement(toInsert);
    }

public void fieldChanged(Field field, int context) {


}


public static Bitmap downloadImage(String url)
{
InputStream iStream = null;
EncodedImage bitmap;
    HttpConnection httpConnection = null;

        try
        {
                    httpConnection = (HttpConnection) Connector.open(url, Connector.READ_WRITE);

            httpConnection.setRequestMethod(HttpConnection.GET);
            int responseCode = httpConnection.getResponseCode();
            if (responseCode == HttpConnection.HTTP_OK) {


                iStream = httpConnection.openInputStream();
                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

                byte[] buffer = new byte[256];
                int len = 0, imageSize = 0;

                while (-1 != (len = iStream.read(buffer))) {
                    byteArrayOutputStream.write(buffer);
                    imageSize += len;
                }

                byteArrayOutputStream.flush();
                byte[] imageData = byteArrayOutputStream.toByteArray();
                byteArrayOutputStream.close();
                bitmap = EncodedImage.createEncodedImage(imageData, 0, imageSize);                                      
                Bitmap bmp = bitmap.getBitmap();

return bmp;
            }
            }
            catch (Exception e)
            {                      
            }
return null;                  
}




}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T10:50:54+00:00Added an answer on June 13, 2026 at 10:50 am

    If you want to Display an Image on BlackBerry Screen from a WebURL. First you need to get a BitMap refrence.

    You can Check the below Code:

    The Code will take input as WebURL and It will return a Bitmap reference.

    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import javax.microedition.io.Connector;
    import javax.microedition.io.HttpConnection;
    import net.rim.device.api.io.IOUtilities;
    import net.rim.device.api.system.Bitmap;
    import net.rim.device.api.system.EncodedImage;
    
            public class GetImage {
            public static Bitmap connectServerForImage(String url) {
            HttpConnection httpConnection = null;
            DataOutputStream httpDataOutput = null;
            InputStream httpInput = null;
            int rc;
            Bitmap bitmp = null;
            try {
            httpConnection = (HttpConnection) Connector.open(url);
            rc = httpConnection.getResponseCode();
            if (rc != HttpConnection.HTTP_OK) {
            throw new IOException("HTTP response code: " + rc);
            }
            httpInput = httpConnection.openInputStream();
            InputStream inp = httpInput;
            byte[] b = IOUtilities.streamToBytes(inp);
            EncodedImage hai = EncodedImage.createEncodedImage(b, 0, b.length);
            return hai.getBitmap();
            } catch (Exception ex) {
            // System.out.println("URL Bitmap Error........" + ex.getMessage());
            } finally {
            try {
            if (httpInput != null)
            httpInput.close();
            if (httpDataOutput != null)
            httpDataOutput.close();
            if (httpConnection != null)
            httpConnection.close();
            } catch (Exception e) {
            e.printStackTrace();
            }
            }
            return bitmp;
            }
              }
    

    And Finally,If you want to Display the Image on BlackBerry Screen, use the below method

    g.drawBitmap(xpos, ypos, w, h, image, 0, 0);//pass the Bitmap reference Here
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

For some reason if I try to display data with the following code, I
for some reason when I try to call CocoaAsyncSocket's onSocket:didReadData:withTag method, it's failing and
I've seen some code as below in some example BlackBerry Java classes: try {
For some reason, this code keeps failing : var http = require('http'); var url
I am trying to fetch some web services from blackberry code. Heres the code
For some reason, when I try to install SQL Server 2008 Express , I
For some reason the DIV I want to animated is animating from the top
For some reason, .NET Reflector throws an exception when I try to reflect on
For some reason, from my office I can't connect to specific ftp address. I
For some reason the following code is giving me an exception. <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries>

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.