Monday 15 August 2011

android - ViewPager Out of Memory + ImageView -



android - ViewPager Out of Memory + ImageView -

i seek create viewpager images. outofmemory-error.

i read sholud utilize bitmaps or somthing "reorganize();"... vut don't understand it...

my code:

adapter:

public class app_info_adapter extends pageradapter { private activity act; int[] pictures = { r.drawable.1, r.drawable.2, r.drawable.3, r.drawable.4 }; public app_info_adapter(activity act) { this.act = act; } @override public void destroyitem(view collection, int position, object o) { view view = (view)o; ((viewpager) collection).removeview(view); view = null; } @override public void finishupdate(view arg0) { // todo auto-generated method stub } @override public int getcount() { homecoming pictures.length; } @override public object instantiateitem(view context, int position) { imageview imageview = new imageview(act); imageview.setimageresource(pictures[position]); layoutparams imageparams = new layoutparams(); imageparams.height = layoutparams.wrap_content; imageparams.width = layoutparams.wrap_content; imageview.setlayoutparams(imageparams); ((viewpager) context).addview(imageview); homecoming imageview; } @override public boolean isviewfromobject(view view, object object) { homecoming view==((imageview)object); } @override public void restorestate(parcelable arg0, classloader arg1) { // todo auto-generated method stub } @override public parcelable savestate() { // todo auto-generated method stub homecoming null; } @override public void startupdate(view arg0) { // todo auto-generated method stub } }

activity

@override protected void onstart() { super.onstart(); setcontentview(r.layout.app_info); viewpager pager = (viewpager)findviewbyid(r.id.viewpager); app_info_adapter mypageradapter = new app_info_adapter(this); pager.setadapter(mypageradapter); }

how can improve performance , no ourofmemory-error

thank soo much!

you must read:

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

then utilize below function changed sample read drawable:

public static bitmap decodesampledbitmapfromdrawable(resources res,int resid,int reqwidth, int reqheight) { // first decode injustdecodebounds=true check dimensions final bitmapfactory.options options = new bitmapfactory.options(); options.injustdecodebounds = true; bitmapfactory.decoderesource(res, resid, options); // calculate insamplesize options.insamplesize = calculateinsamplesize(options, reqwidth, reqheight); // decode bitmap insamplesize set options.injustdecodebounds = false; homecoming bitmapfactory.decoderesource(res, resid, options); } public static int calculateinsamplesize( bitmapfactory.options options, int reqwidth, int reqheight) { // raw height , width of image final int height = options.outheight; final int width = options.outwidth; int insamplesize = 1; if (height > reqheight || width > reqwidth) { final int halfheight = height / 2; final int halfwidth = width / 2; // calculate largest insamplesize value powerfulness of 2 , keeps both // height , width larger requested height , width. while ((halfheight / insamplesize) > reqheight && (halfwidth / insamplesize) > reqwidth) { insamplesize *= 2; } } homecoming insamplesize; }

android imageview out-of-memory android-pageradapter

No comments:

Post a Comment