我是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();
}
});
}
});
请帮忙!?
答案 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);