1.图片下载并缓存
new Thread() {// 下载图片
public void run() {
try {
URL url = new URL(imgUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.connect();
if (connection.getResponseCode() == 200) {
InputStream iStream = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(iStream);
// 2.缓存bitmap至/data/data/packageName/cache/文件夹中
String fileName = imgUrl;
String path = Environment.getExternalStorageDirectory().getPath() + "/splash";
File file = new File(path);
// 文件夹不存在,则创建它
if (!file.exists()) {
file.mkdir();
}
FileOutputStream fos = new FileOutputStream(path + "/123.png");
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.close();
iStream.close();
Log.i("xxx", "下载成功");
}
} catch (Exception e) {
e.printStackTrace();
}
};
}.start();
2.从本地获取图片
private Bitmap getBitmapFromFile() {
Bitmap bitmap = null;
String path = Environment.getExternalStorageDirectory().getPath() + "/splash";
try {
FileInputStream fis = new FileInputStream(path + "/123.png");
bitmap = BitmapFactory.decodeStream(fis);
fis.close();
} catch (Exception e) {
e.printStackTrace();
bitmap = null;
}
return bitmap;
}
本文介绍了一种在Android环境中下载图片并将其缓存到本地的方法。通过新建线程执行HTTP请求,将远程图片资源下载为Bitmap对象,并压缩保存至指定目录。此外,还提供了从本地读取缓存图片的实现。

562

被折叠的 条评论
为什么被折叠?



