android,下载的文件图片不存在?

时间:2015-08-17 01:19:19

标签: android image asynchronous storage

我是android的新手,我正在使用Android异步Http客户端库从服务器下载图像文件 但是当我尝试下载图像时,状态是成功的,但图像没有下载到内部存储中!!

这是我的代码

download.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String url = getIntent().getStringExtra("url");

            AsyncHttpClient client = new AsyncHttpClient();
            client.get(url, new FileAsyncHttpResponseHandler(FullImageActivity.this) {
                @Override
                public void onFailure(int statusCode, Header[] headers, Throwable throwable, File file) {
                    Toast.makeText(FullImageActivity.this, "ERROR", Toast.LENGTH_SHORT).show();

                }

                @Override
                public void onSuccess(int statusCode, Header[] headers, File response) {
                    Toast.makeText(FullImageActivity.this, "DONE", Toast.LENGTH_SHORT).show();



                }
            });
        }
    });

请帮忙!?

3 个答案:

答案 0 :(得分:0)

使用Picasso进行图片加载&下载。 http://square.github.io/picasso/

编辑: 如果要下载并保存到外部存储,请先下载图像:

try {
        URL url = new URL(requestUrl);
        URLConnection conn = url.openConnection();
        bitmap = BitmapFactory.decodeStream(conn.getInputStream());
    } catch (Exception ex) {
}

然后保存到sdCard:

void saveToSdCard(Bitmap bitmap, String filename) {

    File sdcard = Environment.getExternalStorageDirectory() ; 

    File folder = new File(sdcard.getAbsoluteFile(), ".YOUR_DIRECTORY"); //Replace with the name of the directory you want.
    folder.mkdir(); 
    File file = new File(folder.getAbsoluteFile(), filename + ".jpg"); //Assuming your image's extension is '.jpg' .
    if (!file.exists()) {

    try {
        FileOutputStream out = new FileOutputStream(file);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); //Again, assuming it's '.jpg' .
        out.flush();
        out.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}

答案 1 :(得分:0)

我还没有使用该库,但根据回调定义和文档 - 该文件不会自动保存在设备的任何位置。响应在byte[] response中返回,您有责任保存或以您希望的方式使用它。

答案 2 :(得分:0)

请参阅此库以获取android:http://square.github.io/picasso/

使用非常简单:

ImageView img = (ImageView)findViewById(R.id.imageView1);
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(img);