0

我想从服务器(HTTPS)获取图像并将其显示在 ImageView 中。

图片来自 Facebook 活动(例如:https ://fbcdn-photos-fa.akamaihd.net/hphotos-ak-prn1/c17.0.50.50/1016204_538791999501573_1791760778_t.jpg )

 Drawable.createFromStream((InputStream)new URL("https://fbcdn-photos-f-a.akamaihd.net/hphotos-ak-prn1/c17.0.50.50/1016204_538791999501573_1791760778_t.jpg").getContent(), "src");

抛出 NullPointer 异常

或者也许有什么方法可以通过 Facebook SDK 获取图像?在 Facebook SDK 我只知道 ProfilePictureView (可能只用于个人资料图片???)

到目前为止感谢!

4

4 回答 4

0

你检查互联网许可了吗?

<uses-permission android:name="android.permission.INTERNET" /> 

用户 LazyLoading。这样您就可以将缓存存储在 sdcard 中,下次您可以快速获取图像。所以使用这个 http://www.androidhive.info/2012/07/android-loading-image-from-url-http/的例子

使用其他方法

public static Bitmap getBitmapFromURL(String src) {
    try {
        Log.e("src",src);
        URL url = new URL(src);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        Log.e("Bitmap","returned");
        return myBitmap;
    } catch (IOException e) {
        e.printStackTrace();
        Log.e("Exception",e.getMessage());
        return null;
    }
}
于 2013-07-16T07:50:38.607 回答
0

我真是个笨蛋:D

你的回答都是对的!!!

我在对话框中显示了 ImageView。

我使用以下内容指向 ImageView

ImageView image = (ImageView)findViewById(R.id.imageView_event_picture);

但可以肯定的是,这在对话框中为 NULL!

它一定要是

( final Dialog dialog = new Dialog(EventActivity.this); )

ImageView image = (ImageView)dialog.findViewById(R.id.imageView_event_picture);

我没有提到我是在对话框中运行它 - 对不起!

于 2013-07-16T12:52:28.373 回答
0

查看<uses-permission android:name="android.permission.INTERNET" />

我推荐看看他的: Android - Loading Image Url and Displaying in ImageView

于 2013-07-16T08:01:04.133 回答
0

我建议您将其实施到您的项目中。这是最好的解决方案。 https://github.com/thest1/LazyList

于 2013-07-16T08:02:38.880 回答