Hi,everyone. if i want to get a large image (eg.a image which size is 2M or larger.)from url, i use the folllowing code ,and get the exception ."Out of Memory". Any good idea? Thank you.
private Bitmap getBitmapFromUrl(String url) { Bitmap bitmap = null; try { URL imagePath = new URL(url); HttpURLConnection conn = (HttpURLConnection)imagePath.openConnection(); conn.setConnectTimeout(CONNECT_TIMEOUT); conn.setReadTimeout(READ_TIMEOUT); conn.connect(); InputStream is = (InputStream) conn.getContent(); if (is != null) { // bitmap = getBitmapFromInputStream(is, width, height); bitmap = BitmapFactory.decodeStream((InputStream) conn.getContent()); } } catch(Exception e) { e.printStackTrace(); } return bitmap; } public static Bitmap getBitmapFromInputStream(InputStream is, int width, int height){ Bitmap bitmap = null; if (null != is ) { BufferedInputStream bis = new BufferedInputStream(is); BitmapFactory.Options opts = null; if (width > 0 && height > 0) { opts = new BitmapFactory.Options(); opts.inJustDecodeBounds = true; BitmapFactory.decodeStream(is, null, opts); // 计算图片缩放比例 final int minSideLength = Math.min(width, height); opts.inSampleSize = BitmapUtils.computeSampleSize(opts.outWidth, opts.outHeight, minSideLength, width * height); opts.inJustDecodeBounds = false; opts.inInputShareable = true; opts.inPurgeable = true; } try { bitmap = BitmapFactory.decodeStream(bis, null, opts); } catch (OutOfMemoryError e) { e.printStackTrace(); } } return bitmap; } -- 杨辉 Impossible is nothing! ------------------------------------------------------------------------------------ HDExplorer APK (A Nice File Manager,Simplicity but not simple.) Google Market: https://market.android.com/details?id=com.hd.explorer Google Code: http://code.google.com/p/hdexplorer/ -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en