java - Gridlayout with 2x2 imageview android -


i,ve got gridview gets 4 imageviews adapter, want have them 2x2 resized , fitted on screen.

here´s code that:

@override protected view createquizcontentview() {     manswerview = new gridview(getcontext());      statelistdrawable selector = new statelistdrawable();     selector.addstate(new int[]{android.r.attr.state_pressed}, new colordrawable(color.ltgray));     selector.addstate(new int[]{-android.r.attr.state_pressed}, new colordrawable(color.white));      manswerview.setselector(selector);     //manswerview.setselector(r.drawable.selector_button);      manswerview.setnumcolumns(2);     manswerview.setadapter(new optionsquizadapter(getquiz().getoptions(),             r.layout.imgitem_answer));       manswerview.setonitemclicklistener(new adapterview.onitemclicklistener() {         @override         public void onitemclick(adapterview<?> parent, view view, int position, long id) {             manswered = position;             allowanswers(manswerview,position);         }     });     return manswerview; } 

and

@override public view getview(int position, view convertview, viewgroup parent) {     if (convertview == null) {         layoutinflater inflater = layoutinflater.from(parent.getcontext());         convertview = inflater.inflate(mlayoutid, parent, false);     }     final imageview imageview;     string text = gettext(position);     context context = parent.getcontext();      resources resources = context.getresources();      string stripped = text.replace("-", "");     final int resourceid = resources.getidentifier(stripped, "drawable",             context.getpackagename());      drawable d = contextcompat.getdrawable(context, resourceid);      windowmanager wm = (windowmanager) context.getsystemservice(context.window_service);     display display = wm.getdefaultdisplay();     point size = new point();     display.getsize(size);     int height = size.y;      double dviewheight = height/3.32;     int viewheight = (int)dviewheight;      imageview = (imageview) convertview;     imageview.setpadding(64, 64, 64, 64);      convertview.setlayoutparams(newgridview.layoutparams(gridview.auto_fit, viewheight));      imageview.setimagedrawable(d);      return imageview; } 

at moment i´am setting height of imageview inside gridview getting screensize , dividing works fine on device resolution still prefer more dynamic solution work if added more rows gridview.

this how looks:

screensize/magic number

when use gridview.auto_fit on height add lot of useless space , scrollbar on right this:

useless space vertically

i have tried several configurations , stretches none seems work. way achieve want programmatically without xml?

try this: gridview.setnumcolumns(2);


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -