public class ImgUtils { private static ImgUtils imgUtils = null ; private ImgUtils(){} public static ImgUtils getImgUtils() { if (imgUtils == null){ imgUtils = new ImgUtils(); } return imgUtils; } private Handler handler = new Handler(); public void loadImg(String img , ImageView imgview){ String name = img.substring(img.lastIndexOf("/") + 1); File file = new File(Environment.getExternalStorageDirectory() + "/" + name); if (file.exists()){ Bitmap bitmap = douImg(file); imgview.setImageBitmap(bitmap); }else{ new Thread(new Runnable() { @Override public void run() { try { URL url = new URL(img); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.setReadTimeout(5000); con.setConnectTimeout(5000); if (con.getResponseCode() == 200) { InputStream is = con.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); Bitmap b = BitmapFactory.decodeStream(bis); is.close();bis.close();con.disconnect(); b.compress(Bitmap.CompressFormat.JPEG,100,new FileOutputStream(file)); handler.post(new Runnable() { @Override public void run() { imgview.setImageBitmap(douImg(file)); } }); } } catch (Exception e) { e.printStackTrace(); } } }).start(); } } //TODO 图片的二次采样 private Bitmap douImg(File file) { BitmapFactory.Options op = new BitmapFactory.Options(); op.inSampleSize = 4 ; Bitmap.Config fig = Bitmap.Config.RGB_565; Bitmap b = BitmapFactory.decodeFile(file.getAbsolutePath(), op); return b ; } }
图片二次采样
最新推荐文章于 2021-03-19 16:13:02 发布