本文主要是介绍从网络获取图片保存到sdcard,以及加载为bitmap显示到ImageView,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
:1:业务类public class LoginInfodBiz {
private Context context;
public static final String businesslogofile=Environment.getExternalStorageDirectory().toString()+"/business/image/logo.png";
public LoginInfodBiz(Context context) {
this.context=context;
}
/**
* 从网络获取图片并保存到sdcard
* @param url
*/
public void savaBusinessLogo(final String url){
new Thread(new Runnable() {
@Override
public void run() {
try {
Bitmap bitmap = null;
URL picUrl=new URL(url);
InputStream in=picUrl.openStream();
bitmap=BitmapFactory.decodeStream(in);
in.close();
savePictrue(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
private void savePictrue(Bitmap bitmap) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
FileOutputStream out = null;
try {
File file=new File(businesslogofile);
// 如果父目录不存在 则创建
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
// 如果文件不存在 则创建文件
if (!file.exists()) {
file.createNewFile();
}
// 保存图片到文件
bitmap.compress(CompressFormat.PNG, 100, new FileOutputStream(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if (out !=null) out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 从sdccard获取图片
* @param context
* @param path
* @return
*/
public Bitmap getPicFromSdcard(String pathFile){
Bitmap bitmap=null;
try {
File file=new File(pathFile);
FileInputStream fis = new FileInputStream(file);
bitmap=BitmapFactory.decodeStream(fis);
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
}
2Activity调用:
LoginInfodBiz biz=new LoginInfodBiz(context);
Bitmap bitLogo=biz.getPicFromSdcard(LoginInfodBiz.businesslogofile);
if(bitLogo==null){
return;
}else{
ivLogo.setImageBitmap(bitLogo);
}
这篇关于从网络获取图片保存到sdcard,以及加载为bitmap显示到ImageView的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!