package com.example.common;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.http.Header;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.widget.ImageView;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.BinaryHttpResponseHandler;
/**
* 文件下载
*
* @author Administrator
*
*/
public class FileDownload {
private static final AsyncHttpClient client = new AsyncHttpClient();
// 指定文件类型
private static final String[] allowedContentTypes = new String[] {
"image/png", "image/jpeg" };
/**
* 下载头像图片
*
* @param filepath
* @param filename
* @param context
*/
public static void downloadImage(String filepath, final String filename,
final Context context, final ImageView imageView) {
final String tempPath = context.getCacheDir().getPath() + "/"
+ filename;
final File file = new File(tempPath);
if (file.exists() && file.length() > 0) {
imageView.setImageURI(Uri.parse(tempPath));
} else {
// 执行保存操作
client.get(filepath + filename, new BinaryHttpResponseHandler(
allowedContentTypes) {
@Override
public void onSuccess(int statusCode, Header[] headers,
byte[] responseBody) {
Bitmap bmp = BitmapFactory.decodeByteArray(responseBody, 0,
responseBody.length);
// 压缩格式
CompressFormat format = Bitmap.CompressFormat.PNG;
// 压缩比例
int quality = 100;
try {
if (file.exists())
file.delete();
// 创建文件
file.createNewFile();
//
OutputStream stream = new FileOutputStream(file);
// 压缩输出
bmp.compress(format, quality, stream);
// 关闭
stream.close();
imageView.setImageURI(Uri.parse(tempPath));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onFailure(int statusCode, Header[] headers,
byte[] responseBody, Throwable error) {
System.out.println("文件读取失败");
}
});
}
}
}