2 u010539040 u010539040 于 2014.05.07 16:22 提问

android下载图片保存到本地图片大小为0KB,是什么原因??求大神解决

public Drawable loadImageFromUrl(String urlPath, String directory,
String filename) {
byte[] data = null;
InputStream is = null;
Drawable drawable = null;
HttpURLConnection conn = null;
URL url = null;
try {
url = new URL(urlPath);
} catch (Exception e) {
e.printStackTrace();
return drawable;
}
try {
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
// conn.setDoOutput(true);
conn.setRequestMethod("GET");
conn.setConnectTimeout(6000);
is = conn.getInputStream();
if (conn.getResponseCode() == 200) {
BitmapFactory.Options opts = new BitmapFactory.Options();
data = readInputStream(is);
//处理图片溢出
opts.inJustDecodeBounds = true;
BitmapFactory.decodeByteArray(data, 0, data.length, opts);
opts.inSampleSize = computeSampleSize(opts, -1, AppContext.getScreenHeight()*AppContext.getScreenWidth());
opts.inJustDecodeBounds = false;

            Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0,
                    data.length, opts);

            drawable = (Drawable) new BitmapDrawable(bitmap);
            // 如果目录和图片名称存在,保存图片
            if (null != directory && null != filename) {
                // 创建目录,保存图片
                if (hasStorage(true, directory)) {
                    // 目录地址
                    String directoryName = SDPATH + directory;
                    // 创建文件
                    File file = new File(directoryName, filename);

                    BufferedOutputStream bos = new BufferedOutputStream(
                            new FileOutputStream(file));

                    // 获取图片的格式
                    String dat = filename.substring(filename
                            .lastIndexOf(".") + 1);
                    Log.d(TAG, "图片格式1111111111:" + dat);
                    if ("jpg".equals(dat)) {
                        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bos);
                    } else if ("png".equals(dat)) {
                        bitmap.compress(Bitmap.CompressFormat.PNG, 90, bos);
                    }

                    bos.flush();
                    bos.close();
                } else {
                    Log.d(TAG, "save picture failed");
                }
            }

        } else {
            data = null;
        }
    } catch (Exception e) {
        e.printStackTrace();
        drawable = null;
    } finally {
        try {
            if (is != null) {
                is.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        conn.disconnect();
    }

    return drawable;
}

1个回答

icyblood198999
icyblood198999   Rxr 2014.05.09 14:03

0k的话,主要还是考虑请求没有成功,图片根本没有传到android端的情况

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android 保存Glide展示的图片到本地
在展示图片的时候,我们不仅仅需要把图片展示出来,往往还需要把图片下载到本地,这里举例取出Glide的GIF图片放到指定的文件目录,之前写过一篇如何加载GIF: Glide 加载gif图片 取出Glide中文件的地址: /** * Glide 获得图片缓存路径 */ private String getImagePath(String imgUrl) {
android从服务器端下载图片并保存在本地sdcard里并在界面滚动显示出来
android从服务器端下载图片,并将图片保存在本地sdcard里,需要显示图片时,先从本地查找,查询不到时再从服务器端下载,并在界面实现滚动显示图片
Android实现下载保存图片到本地并在相册中显示
下载保存图片到本地是常见的一种需求,之前碰到了一个问题,就是在4.4以上版本中,刷新相册会出现安全权限被拒绝问题,经过一番百度解决了这个问题。
Android下载网络图片并保存在本地相册
package com.thfund.bigtree.StarCounselor.activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android
Android 下载网络图片保存到本地
Android 下载网络图片保存到本地
Glide加载图片并保存到本地相册
不废话,直接上代码 import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import com.baguanv.jinba.utils.Const; import com.bumptech.glide.Gl
26.Android 下载图片保存到相册
26.Android 下载图片保存到相册Android 下载图片保存到相册 前言 实现思路 自定义Dialog 自定义Handler 自定义AsyncTask AndroidManifest配置权限 DownloadImageToGalleryActivity 效果图 源码传送门前言有遇到没有这样的一种需求:浏览的大图后,点击保存下载高清原图到相册的需求。现在的图片缓存大多都是Universal-I
Glide下载图片并保存到本地
Observable.create(new ObservableOnSubscribe<File>() { @Override public void subscribe(ObservableEmitter<File> e) throws Exception { //通过gilde下载得到file文件,这里...
使用okhttp异步下载图片,保存到本地,并在系统相册中显示
//首先需要创建一个OkHttpClient实例 private OkHttpClient mOkHttpClient = new OkHttpClient(); private Handler mDelivery = new Handler(Looper.getMainLooper()); /** * 下载图片并返回结果 / private void loadImage(fin
Android 网上下载图片 保存在文件中 更新listview
 在Android开发中我们经常有这样的需求,从服务器上下载xml或者JSON类型的数据,其中包括一些图片资源,本demo模拟了这个需求,从网络上加载XML资源,其中包括图片,我们要做的解析XML里面的数据,并且把图片缓存到本地一个cache目录里面,并且用一个自定义的Adapter去填充到LIstView,demo运行效果见下图: 通过这个demo,要学会有一下几点 1.怎么解