How do I get the image to load ?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • phpuser123
    New Member
    • Dec 2009
    • 108

    How do I get the image to load ?

    The codes below send a request to server and the server sends a response back. Then, the client formats the request and makes it a url that it loads on imageitem. This works fine using the emulator but as I deploy it on my mob, It is able to retrieve the string from my server but as it tries to load the image, it says NegativeArrayEx ception.

    Note:1. I have web already activated on my mob
    2. When I use a static url, it works fine, that is instead of passing the formatted url, I pass a static url.

    How do I get the image to load ?



    Code:
      public void run() {
            try {
                sendMessage("Query,map,$,start,211,Arsenal,!");
                String unformattedurl = receiveMessage();
           
                String url = "http://maps.google.com/maps/api/staticmap?center=100,20&zoom=14&size=500x400&format=JPEG&maptype=roadmap&sensor=false";
               URL = getURL(unformattedurl);
            
                
                            stringItem.setText(URL);
                            Image image = loadImage(URL);
                            item.setImage(image);
                
            } catch (Exception ex) {
                stringItem.setText(stringItem.getText() + "Err2"+ex.getMessage());
            }
    
        }
    
    
    
     private String getURL1(String message){
         return "http://maps.google.com/maps/api/staticmap?center=Mauritius&zoom=10&size=200x200&maptype=roadmap&markers=color:Blue|label:U|22.0,22.0&markers=color:Green|label:B|21.0,21.0&sensor=false";
     }
    
    
    
        private String getURL(String message) throws Exception{
            
            String[] messagearr=client.split(message,",");
           
            String color,object;
            String url="http://maps.google.com/maps/api/staticmap?center=Mauritius&zoom=10&size="+200+"x"+200+"&maptype=roadmap";
            
            String lat,longitude;
    
            if (messagearr[0].equals("query")){
                
                if (messagearr[1].equals("Error")){
                    String error=messagearr[2];
                   
                }
                else {
                    
                    int startindex=5;
                    String distance,time;
                    distance=messagearr[2];
                    time=messagearr[3];
                    String name=messagearr[4];
                    String imageLabel="The bus is at :"+time+"min and "+distance +"km from user";
    
    
                    for (int i=startindex;i<messagearr.length;i+=2){
                         System.out.println("TEst8");
                         lat=messagearr[i];
                         longitude=messagearr[i+1];
    
                        if (i==startindex){
                            object="U";
                            color="Blue";
                        }
    
                        else{
                            object="B";
                            color="Green";
                        }
    
    
                         url=url+"&markers=color:"+color+"|label:"+object+"|"+lat+","+longitude;
                         item.setLabel(7+url);
                         
                    }
                    url+="&sensor=false";
    
                    
                    return url;
                }
            }
            
            throw new Exception("Url is wrong");
        }
    
         private void sendMessage(String message) throws IOException{
            
                DataOutputStream dos = connection.openDataOutputStream();
             
                dos.writeUTF(message);
                 
        }
    
     private String receiveMessage() throws IOException{
           //stringItem.setText(stringItem.getText()+5);
          DataInputStream dis = connection.openDataInputStream();
          //stringItem.setText(stringItem.getText()+6);
          return dis.readUTF();
      }
    public Image loadImage(String url) throws IOException {
        HttpConnection hpc = null;
        DataInputStream dis = null;
        try {
          hpc = (HttpConnection) Connector.open(url);
          
          int length = (int) hpc.getLength();
          System.out.println("Length is "+length);
          byte[] data = new byte[length];
          dis = new DataInputStream(hpc.openInputStream());
          dis.readFully(data);
          return Image.createImage(data, 0, data.length);
        } finally {
          if (hpc != null)
            hpc.close();
          if (dis != null)
            dis.close();
        }
      }
    }
    Last edited by Niheel; Feb 26 '11, 06:01 PM. Reason: gotta close the code tags with [/close]
Working...