*Thank you,*Nobu.
Your Advice is helpful for me.

2012/12/11 Nobu Games <dev.nobu.ga...@gmail.com>

> You should first of all download that image and store it in a file instead
> of directly decoding a 2MB stream (which depending of the compression
> degree will of course explode to a much larger size in memory). From that
> file you can load a smaller version of that image which fits into the view
> that is going to display the bitmap. That's the clean way to avoid your out
> of memory problems.
>
> By the way, what you're trying to do in your second method called
> getBitmapFromInputStream most likely cannot work. You are trying to read
> from the same stream twice, first of all for determining the bitmap size,
> the second time for decoding the actual bitmap. In between these two read
> accesses the stream should be reset to its beginning. However, this is not
> guaranteed to work. Some stream implementations are "one way only". Once it
> is read there is no way back.
>
>
> On Monday, December 10, 2012 9:42:37 AM UTC-6, snowdream wrote:
>>
>> 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<https://market.android.com/details?id=com.hd.explorer>
>>
>> Google Code:
>> http://code.google.com/p/**hdexplorer/<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
>



-- 
杨辉
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

Reply via email to