Android Studio — получить изображение твита из твиттера — Fabric

  • Я получаю твиттер в своем приложении Android Studio, используя Fabric
  • для каждого твита, к которому прикреплено изображение, я хочу отобразить изображение
  • как я могу извлечь либо URL-адрес изображения, либо байт []?

Я нашел то, что выглядит как массив байтов, но когда я пытаюсь декодировать его с помощью растровых изображений decodeByteArray, он возвращает null

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

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


person Natalia Sharon    schedule 14.11.2015    source источник


Ответы (2)


URL изображения

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

Расшифровать изображение

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;
}
person user3024760    schedule 15.11.2015
comment
Спасибо большое! Это возвращало значение null, пока я не понял, что мне нужно получить tweet.entities.media.get(0).mediaurl; вместо просто URL - но это работает :) - person Natalia Sharon; 15.11.2015

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

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);
         }

Если вы используете атрибуты type, вы можете легко отличить image/video от userTimeLine.

person Dhruv Raval    schedule 18.11.2015
comment
не могли бы вы прислать мне полный код о том, как заставить СМИ работать на любом мероприятии - person Allay Khalil; 18.02.2016