java - using gridview with images in android -
this problematic code:
public class level1 extends activity { int[] logos = { r.drawable.arutz8, r.drawable.channel1, r.drawable.doctor_gav, r.drawable.foxgroup3, r.drawable.careline, r.drawable.golfnew, r.drawable.haaretz, r.drawable.hafenix, /*r.drawable.hando, r.drawable.bankleumi, r.drawable.jerusalempostred, r.drawable.laisha, r.drawable.logo, r.drawable.logodelta, r.drawable.maariv, r.drawable.pelephone, r.drawable.ravbariah, r.drawable.renuar, r.drawable.reshet_tv, r.drawable.sano, r.drawable.shilav, r.drawable.sport5, r.drawable.srigamish, r.drawable.steimatzky, r.drawable.superpharm, r.drawable.supersal, r.drawable.tambur, r.drawable.tzometsfarim, r.drawable.walla, r.drawable.yediot,*/ }; @override protected void oncreate(bundle savedinstancestate) { // todo auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.level1); listadapter adapter = (new arrayadapter<integer>(this, r.layout.level1)); gridview grid = (gridview) findviewbyid(r.id.gridview1); grid.setadapter(new imageadapter(this)); } private class imageadapter extends baseadapter { private context context; public imageadapter(context c) { context = c; } //---returns number of images--- public int getcount() { return logos.length; } //---returns id of item--- public object getitem(int position) { return position; } public long getitemid(int position) { return position; } //---returns imageview view--- public view getview(int position, view convertview, viewgroup parent) { imageview imageview; if (convertview == null) { imageview = new imageview(context); imageview.setlayoutparams(new gridview.layoutparams(90, 90)); imageview.setscaletype(imageview.scaletype.fit_xy); imageview.setpadding(5, 5, 5, 5); } else { imageview = (imageview) convertview; } imageview.setimageresource(logos[position]); return imageview; } }
}
this program works long size of images 60px per each image. problem in size of image every image got constricted , ugli!. tried use in bigger images , reason first 5 images appears on screen , when try load rest images, app crashes. thought happens because of size of images realized images in same big size , still 5 of them drawn on screen. ideas?
those logs logcat:
and result when press on level 1 button:
there problem in public view getview(...) method in imageadapter. when convertview == null, never link convertview imageview. there problem in else-statement. can in 2 ways:
by defining imageview in code did, in case best choice:
imageview imageview = (imageview) convertview;
if (convertview == null) { convertview = new imageview(context); imageview = (imageview) convertview; // set other parameters }
// set resource
return convertview;
by defining layout in xml-layout file using layout inflater:
handler handler;
if (convertview == null) { layoutinflater li = (layoutinflater) c.getsystemservice(context.layout_inflater_service); convertview = li.inflate(yourlayoutresourceid, parent, false); handler = new handler(); handler.itemiv = (imageview) convertview.findviewbyid(imageviewlayoutid); convertview.settag(handler); } else { handler = (handler) convertview.gettag(); } handler.imageview.setimageresource(...); return convertview;
where yourlayoutresourceid id of created xml-layout file (r.layout.exmaple), , imageviewlayoutid id of imaeview in layout (r.id.exmapleiv). last step define inner class handler in imageadapter:
class handler { imageview imageview; }good luck! have nice development.
kr
Comments
Post a Comment