【问题标题】:Android Studio - Get tweet image from twitter - FabricAndroid Studio - 从 twitter 获取推文图片 - Fabric
【发布时间】:2016-02-16 03:38:19
【问题描述】:
  • 我在我的 Android Studio 应用中使用 Fabric 获取 twitter 供稿
  • 对于每条附有图片的推文,我希望显示图片
  • 如何提取图像的 url 或字节 []?

我找到了一个看起来像字节数组的东西,但是当我尝试使用位图 decodeByteArray 对其进行解码时,它返回 null

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

谁能帮我找到一种方法来检索图像以便我可以显示它?

【问题讨论】:

    标签: android twitter tweets twitter-fabric twitter-feed


    【解决方案1】:

    图片网址

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

    【讨论】:

    • 非常感谢!在我意识到我需要获取 tweet.entities.media.get(0).mediaurl; 之前,这将返回 null;而不仅仅是网址 - 但它有效:)
    【解决方案2】:

    只有当图像可用时,我才会得到图像:

    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

    【讨论】:

    • 能否请您将有关如何让媒体进行任何活动的完整代码发送给我
    猜你喜欢
    • 2019-04-27
    • 2015-01-13
    • 2015-03-02
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 2016-06-29
    • 2015-10-14
    • 1970-01-01
    相关资源
    最近更新 更多