Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示来自黑莓url的图像_Java_Blackberry - Fatal编程技术网

Java 显示来自黑莓url的图像

Java 显示来自黑莓url的图像,java,blackberry,Java,Blackberry,这是我用来获取图片表单url的代码,但我得到的是Black屏幕,请帮助。 HttpConnection的代码: StringBuffer raw = new StringBuffer(); HttpConnection _c = null; InputStream _is = null; try { _c = (HttpConnection)Connector.open(url); _c.getHeaderField("Locat

这是我用来获取图片表单url的代码,但我得到的是Black屏幕,请帮助。 HttpConnection的代码:

StringBuffer raw = new StringBuffer();
    HttpConnection _c = null;
    InputStream _is = null;
    try 
    {
        _c = (HttpConnection)Connector.open(url);
        _c.getHeaderField("Location");          
        int rc = _c.getResponseCode();                      
        if (rc != HttpConnection.HTTP_OK) 
        {
            throw new IOException("HTTP response code: " + rc);
        }           
        _is = _c.openInputStream();

        _c.getType();
        int len = (int)_c.getLength();
        {

            data = new byte[256];            
            int size = 0;
            while ( -1 != (len = _is.read(data)) ) 
            {
                raw.append(new String(data, 0, len));
                size += len;
            }
            String retVal = raw.toString();
            // .alert(retVal);
            return retVal+"URL is"+url;
        }
    } 
    catch (Exception e) 
    {
        throw new IllegalArgumentException("Not an HTTP URL");
    }
    finally 
    {        
        if (_is != null)
            _is.close();
        if (_c != null)
         _c.close();
    }
从Perticular URL获取图像的代码:

 public static Bitmap getImage(String url)
 {

     Bitmap bitmap;
     EncodedImage bmp = EncodedImage.createEncodedImage(data, 0, data.length);
     bitmap=bmp.getBitmap();
     return bitmap;
}
我正在使用以下代码在主屏幕上显示图像:

Bitmap bt=HttpUtils.getImage("http://www.eng.chula.ac.th/files/building.jpg");                  
        BitmapField bmp=new BitmapField(bt);
        bmp.setBitmap(bt);
        add(bmp);
请尝试以下代码-

URLBitmapField post_img= new URLBitmapField(image_url);
add(post_img);





import net.rim.device.api.math.Fixed32;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.EncodedImage;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.BitmapField;

public class URLBitmapField extends BitmapField implements URLDataCallback {
EncodedImage result = null;
public static EncodedImage _encoded_img = null;

int _imgWidth = 52;
int _imgHeight = 62;
int _imgMargin = 10;

public URLBitmapField(String url) {
    try {
        http_image_data_extrator.getWebData(url, this);
    }
    catch (Exception e) {}
}

public Bitmap getBitmap() {
    if (_encoded_img == null) return null;
    return _encoded_img.getBitmap();
}

public void callback(final String data) {
    if (data.startsWith("Exception")) return;

    try {
        byte[] dataArray = data.getBytes();

        //bitmap = EncodedImage.createEncodedImage(dataArray, 0, dataArray.length);//no scale

        _encoded_img = EncodedImage.createEncodedImage(dataArray, 0, dataArray.length); // with scale
        _encoded_img = sizeImage(_encoded_img, _imgWidth, _imgHeight);

        setImage(_encoded_img);
        UiApplication.getUiApplication().getActiveScreen().invalidate();
    }
    catch (final Exception e){}
}

public EncodedImage sizeImage(EncodedImage image, int width, int height) {


      int currentWidthFixed32 = Fixed32.toFP(image.getWidth());
      int currentHeightFixed32 = Fixed32.toFP(image.getHeight());

      int requiredWidthFixed32 = Fixed32.toFP(width);
      int requiredHeightFixed32 = Fixed32.toFP(height);

      int scaleXFixed32 = Fixed32.div(currentWidthFixed32,
        requiredWidthFixed32);
      int scaleYFixed32 = Fixed32.div(currentHeightFixed32,
        requiredHeightFixed32);

      result = image.scaleImage32(scaleXFixed32, scaleYFixed32);
      return result;
}



}



public interface URLDataCallback {

    public void callback(String data);

}




import java.io.IOException;
import java.io.InputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import net.rim.device.api.system.RadioInfo;
import net.rim.device.api.system.WLANInfo;
import net.rim.device.api.ui.UiApplication;

public class http_image_data_extrator {
    static String url_="";
    static StringBuffer rawResponse=null;
    //static String result = null;
         public static void getWebData(String url, final URLDataCallback callback) throws IOException {
             //url_=url;

                 HttpConnection connection = null;  
                 InputStream inputStream = null;  

                try {  


                    if ((WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED)
                            && RadioInfo
                                    .areWAFsSupported(RadioInfo.WAF_WLAN)) {
                        url += ";interface=wifi";
                    }

                    connection = (HttpConnection) Connector.open(url, Connector.READ, true);  

                    String location=connection.getHeaderField("location");

                    if(location!=null){


                        if ((WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED)
                                && RadioInfo
                                        .areWAFsSupported(RadioInfo.WAF_WLAN)) {
                            location += ";interface=wifi";
                        }


                        connection = (HttpConnection) Connector.open(location, Connector.READ, true);  

                    }else{
                        connection = (HttpConnection) Connector.open(url, Connector.READ, true);  
                    }


                    inputStream = connection.openInputStream();  
                    byte[] responseData = new byte[10000];  
                    int length = 0;  
                    rawResponse = new StringBuffer();  
                    while (-1 != (length = inputStream.read(responseData))) { 
                        rawResponse.append(new String(responseData, 0, length));  
                    }  
                    int responseCode = connection.getResponseCode();  
                    if (responseCode != HttpConnection.HTTP_OK){
                        throw new IOException("HTTP response code: "+ responseCode);  
                    }  

                    final String  result = rawResponse.toString();
                    UiApplication.getUiApplication().invokeLater(new Runnable() {  
                        public void run(){  
                            callback.callback(result);  
                        }  
                    });  
                }  
                catch (final Exception ex) {  
                    UiApplication.getUiApplication().invokeLater(new Runnable() {  
                        public void run() {  
                            callback.callback("Exception (" + ex.getClass() + "): " + ex.getMessage());  
                        }  
                    });  
                }
    }  

}

你能告诉我如何异步运行它吗?运行这行http\u image\u data\u extrator.getWebDataurl,这;在一个线程中以避免阻塞。Thanx我从url获取了图像。现在我将它们添加到列表字段。我希望当我运行应用程序时,我希望在滚动时获得图像的空白列表。。。