来自URL的Android可绘图像

我目前正在使用以下代码将图像加载成可绘制的对象形成一个URL。

Drawable drawable_from_url(String url, String src_name) 
throws java.net.MalformedURLException, java.io.IOException {
        return Drawable.createFromStream(((java.io.InputStream)new java.net.URL(url).getContent()), src_name);

}

这段代码完全按照想要的方式工作,但似乎存在兼容性问题。在1.5版本中,当我给它一个URL时,它会抛出一个FileNotFoundException。在2.2中,给定完全相同的URL,它工作正常。以下URL是我给出此功能的示例输入。

http://bks6.books.google.com/books?id=aH7BPTrwNXUC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U2aQRnAX2o2ny2xFC1GmVn22almpg

如何从网址上兼容的方式加载图像?

位图不是Drawable。如果你真的需要一个Drawable做这个:

public static Drawable drawableFromUrl(String url) throws IOException {
    Bitmap x;

    HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
    connection.connect();
    InputStream input = connection.getInputStream();

    x = BitmapFactory.decodeStream(input);
    return new BitmapDrawable(x);
}

(我用http://stackoverflow.com/a/2416360/450148的提示)

http://stackoverflow.com/questions/3375166/android-drawable-images-from-url

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:来自URL的Android可绘图像