android - Pulling images from Web -


i'm using following code grab images web. uses gridview , depending on position, picks url array. works loading of images hit or miss. every time start app, different number of images load.

it has issues when changing portrait landscape view, 5 out of 10 images may displayed i'll turn device , lose images. few show though.

any ideas on making more robust?

try {                     urlconnection conn = aurl.openconnection();                     conn.connect();                     inputstream = conn.getinputstream();                     bufferedinputstream bis = new bufferedinputstream(is);                     bitmap bm = bitmapfactory.decodestream(bis);                     bis.close();                     return bm;             } catch (ioexception e) {                     log.d("debugtag", "error...");             }             return null; 

one thing read there's known bug decoding bitmaps inputstream, , suggested fix google use flushedinputstream (example in below url):

http://android-developers.blogspot.com/2010/07/multithreading-for-performance.html

also, i'd put download code asynctask. here's use mine:

public static bitmap loadimagefromuri(uri uri)     {            url url;         try {             url = uri.tourl();          } catch (malformedurlexception e) {             log.v("url exception", "malformedurlexception");             return null;         }          try         {                        httpurlconnection connection = (httpurlconnection)url.openconnection();             connection.setdoinput(true);             connection.connect();             inputstream input = connection.getinputstream();             return bitmapfactory.decodestream(new flushedinputstream(input));         }         catch (ioexception e)         {             e.printstacktrace();             return null;         }     } 

i pass in uri due way i've got rest of code set up, pass in url instead , skip first part. keep download tying ui thread.


Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

unicode - Are email addresses allowed to contain non-alphanumeric characters? -