将URL保存到内部存储

时间:2017-09-12 09:37:52

标签: java android

因此标题略有误导。我把URl放在了一个可绘制的地方。

public Drawable getDrawableFromURL(String url) {
    try {
        InputStream is = (InputStream) new URL(url).getContent();
        Drawable d = Drawable.createFromStream(is, "src name");
        return d;
    } catch (Exception e) {
        return null;
    }
}

我原先有一个位图,但仍然保留了nullpointers和android.os.NetworkOnMainThreadException,我已经设法修复了,但nullpointer再次出现。所以我一直坚持如何保存到内部,因为我可以将它保存到SD。

由于

1 个答案:

答案 0 :(得分:1)

试试这个

public class DownloadImage extends AsyncTask<String, Void, Bitmap> {


 protected Bitmap doInBackground(String... urls) {
    String urldisplay = urls[0];
    Bitmap mIcon11 = null;
    try {
        InputStream in = new java.net.URL(urldisplay).openStream();
        mIcon11 = BitmapFactory.decodeStream(in);
    } catch (Exception e) {
        Log.d("Error", e.getStackTrace().toString());

    }
    return mIcon11;
 }

 protected void onPostExecute(Bitmap result) {
   // save your bitmap here

 }
}

使用下面的代码

来调用此AsyncTask
 new DownloadImage().execute(url);