Как получить растровое изображение из URL в Blackberry - PullRequest
0 голосов
/ 20 марта 2012

Я хочу получить растровое изображение из URL, например -

"https://graph.facebook.com/100003506521332/picture"

Я пытался как я могу отображать изображения из URL в ежевике . Но он показывает ошибку http 302. Не показывает растровое изображение. Как решить проблему?.

Ответы [ 3 ]

0 голосов
/ 21 марта 2012

Если вы получили responce из этого кода httpconnection = (HttpConnection) Connector.open(url, Connector.READ, true);, о котором упоминается в ответе выше, чем вы можете использовать альтернативное решение для этого ..

Вы можете передать свой идентификатор здесь http://graph.facebook.com/100003506521332/?fields=picture&type=large, чемвы получите один ответ json, подобный этому {"picture": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/70678_100003506521332_1415569305_n.jpg"}

, проанализируйте этот json и получите то, что вы хотите точно ... чем вы получите ответ, используя также httpconnection = (HttpConnection) Connector.open(url, Connector.READ, true);.

, если вы не хотите larger изображение, чем удалить &type=large с вышеуказанного URL.

0 голосов
/ 16 декабря 2012
//YOUR PACKAGE NAME
package ...........;
//*************************

import java.io.InputStream;

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

import net.rim.device.api.system.Bitmap;

public class Util_ImageLoader {
    public static Bitmap getImageFromUrl(String url) {
        Bitmap bitmap = null;

        try {
            String bitmapData = getDataFromUrl(url);
            bitmap = Bitmap.createBitmapFromBytes(bitmapData.getBytes(), 0,
                    bitmapData.length(), 1);
        } catch (Exception e1) {
            e1.printStackTrace();
        }

        return bitmap;
    }

    private static String getDataFromUrl(String url) {
        StringBuffer b = new StringBuffer();
        InputStream is = null;
        HttpConnection c = null;

        long len = 0;
        int ch = 0;

        try {
            c = (HttpConnection) Connector.open(url);

            is = c.openInputStream();
            len = c.getLength();
            if (len != -1) {
                for (int i = 0; i < len; i++)
                    if ((ch = is.read()) != -1) {
                        b.append((char) ch);
                    }
            } else {
                while ((ch = is.read()) != -1) {
                    len = is.available();
                    b.append((char) ch);
                }
            }

            is.close();
            c.close();

        } catch (Exception e) {
            e.printStackTrace();
        }

        return b.toString();
    }
}

скопируйте это в ваш пакет .... Теперь, чтобы использовать этот класс, сделайте вот так >>>>>>>>

СОЗДАТЬ ОБЪЕКТ BITMAP:

Bitmap IMAGE;

После этого:

IMAGE=Util_ImageLoader.getImageFromUrl("https://graph.facebook.com/100003506521332/picture");

Кстати, я думаю, что вы пропустили расширение, такое как JPG, PNG, в своем URL .... Проверьте это

Теперь добавьте свое растровое изображение туда, где вы хотите отобразить изображение ......

НАСЛАЖДАЙТЕСЬ!

add(IMAGE);
0 голосов
/ 20 марта 2012
String url = "https://graph.facebook.com/100003506521332/picture";
     try 
        {
            bitmap = globleDeclaration.getLiveImage(url, 50, 50);
            bitmapField.setBitmap(bitmap);
        }
        catch (IOException e) 
        {
            e.printStackTrace();
            Dialog.alert(e.getMessage());
        }





public Bitmap getLiveImage(String url,int width,int height) throws IOException
    {   
        Bitmap bitmap = null;
try  
        {  
             byte[] responseData = new byte[10000];  
               int length = 0;  
               StringBuffer rawResponse = new StringBuffer();  
            httpconnection = (HttpConnection) Connector.open(url, Connector.READ, true);  
            String location=httpconnection.getHeaderField("location");

                if(location!=null){
                     httpconnection = (HttpConnection) Connector.open(location, Connector.READ, true);  

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


                inputStream = httpconnection.openInputStream();  


                    while (-1 != (length = inputStream.read(responseData)))  
                    {  
                     rawResponse.append(new String(responseData, 0, length));  
                    }  
                    int responseCode = httpconnection.getResponseCode();


                if (responseCode != HttpConnection.HTTP_OK)  
                {  
                    throw new IOException("HTTP response code: "  
                            + responseCode);  
                }  
                final String result = rawResponse.toString();

                 byte[] dataArray = result.getBytes();  
                 encodeImageBitmap = EncodedImage.createEncodedImage(dataArray, 0, dataArray.length); 

            }  
            catch (final Exception ex)  
            {  
             System.out.print("Exception (" + ex.getClass() + "): " + ex.getMessage());   
            }  
            finally  
            {  
                try  
                {  
                    inputStream.close();  
                    inputStream = null;  
                    httpconnection.close();  
                    httpconnection = null;  
                }  
                catch(Exception e){}  
            }


        return bitmap;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...