2015-11-14 5 views
2
  • Я получаю щебет корм в моем Android приложении Студии, используя ткань
  • для каждого твита, который имеет изображение attactched, я хочу, чтобы отобразить изображение
  • Как я могу извлечь URL-адрес изображения или байта []?

Я обнаружил, что выглядит как массив байтов, но при попытке расшифровать его, используя растровые изображения decodeByteArray, он возвращает нульAndroid Studio - Получить чирикать изображение из твиттера - Ткань

      String mediaString = t.entities.media.toString(); 
          String[] mediaArray = mediaString.split("([email protected])"); 
          byte[] mediaBytes = mediaArray[1].getBytes(); 

может кто-нибудь помочь мне найти способ получить изображение таким образом, Я могу отобразить его?

ответ

0

Image URL

String mediaImageUrl = tweet.entities.media.get(0).url; 
Bitmap mediaImage = getBitmapFromURL(mediaImageUrl); 
Bitmap mImage = null; 

Decode изображение

private Bitmap getBitmapFromURL(final String mediaImageUrl) { 

    try { 
     Thread t = new Thread() { 
      public void run() { 
       try { 
        URL url = new URL(mediaImageUrl); 
        HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
        connection.setDoInput(true); 
        connection.connect(); 
        InputStream input = connection.getInputStream(); 
        BitmapFactory.Options options = new BitmapFactory.Options(); 
        options.inScaled = false; 
        mImage = BitmapFactory.decodeStream(input, null, options); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }; 
     t.start(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return mImage; 
} 
+1

спасибо большое! Это возвращало null, пока я не понял, что мне нужно получить tweet.entities.media.get (0) .mediaurl; а не только URL-адрес, но он работает :) –

0

я получаю изображение, только если он доступен как:

String mediaImageUrl = null; 
     if (tweet.entities.media != null) { 
       String type = tweet.entities.media.get(0).type; 

        if (type.equals("photo")) { 
         mediaImageUrl = tweet.entities.media.get(0).mediaUrl; 
        } 
        else { 
         mediaImageUrl = "'"; 
        } 
          System.out.println("mediaImageUrl" + mediaImageUrl); 
     } 

Если и с помощью типа атрибуты u может легко различаться ferentiates image/video от пользователяTimeLine

+0

не могли бы вы выслать мне полный код о том, как получить средства массовой информации в любом случае? –