您的位置:首页 > 其它

下载图片文件更新图库工具类

2016-12-23 14:18 323 查看
public void downloadFile(final String url) {
AsyncHttpClient client = new AsyncHttpClient();
client.get(url, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] binaryData) {

try {
saveImg(url, binaryData);
} catch (IOException e) {
e.printStackTrace();
}
}

@Override
public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] binaryData, Throwable error) {
Toast.makeText(this, "下载失败",Toast.LENGTH_LONG).show();
}
});
}

public void saveImg(String url, byte[] bytes) throws IOException {
if (!isMounted()) return;

File dir = new File(CACHEDIR);
if (!dir.exists()) dir.mkdirs();

FileOutputStream fos = new FileOutputStream(new File(dir, getName(url)));
fos.write(bytes);
fos.close();

//更新图库
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(new File(dir, getName(url)));
intent.setData(uri);
sendBroadcast(intent);
}

public static boolean isMounted() {
return Environment.MEDIA_MOUNTED.equals(
Environment.getExternalStorageState());
}

public String getName(String url) {
return md5(url) + ".png";
}

public String md5(String stringContent) {
String ret = null;
if (stringContent != null) {
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] data = digest.digest(stringContent.getBytes());
BigInteger bigInteger = new BigInteger(1, data);
ret = bigInteger.toString(16);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
return ret;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: