android - How to create imageviews dynamically on runtime? -
im building android app needs create max of 1-4 imageviews depending on number of images need display on screen. have written small code doesn't seem divide screen equally on 4 imageviews though. top 2 little larger bottom 2 in case. following code cant think issue is
private void createscreen() { int screenheight = getwindowmanager().getdefaultdisplay().getheight(); int screenwidth = getwindowmanager().getdefaultdisplay().getwidth(); int matrixn = 2; int maxwforeachscreen = screenwidth / matrixn; int maxhforeachscreen = screenheight / matrixn; relativelayout relativelayout = (relativelayout) findviewbyid(r.id.relativelayoutfullscreen); imageview imgview1 = new imageview(liveviewer.this); imageview imgview2 = new imageview(liveviewer.this); imageview imgview3 = new imageview(liveviewer.this); imageview imgview4 = new imageview(liveviewer.this); int size = 3; if(size >= 3 && size <= 4) { imgview1.setimageresource(r.drawable.icon); imgview2.setimageresource(r.drawable.icon); imgview3.setimageresource(r.drawable.icon); imgview4.setimageresource(r.drawable.icon); relativelayout.layoutparams params1 = new relativelayout.layoutparams(100, 100); relativelayout.layoutparams params2 = new relativelayout.layoutparams(100, 100); relativelayout.layoutparams params3 = new relativelayout.layoutparams(100, 100); relativelayout.layoutparams params4 = new relativelayout.layoutparams(100, 100); params1.height = maxhforeachscreen/2; params1.width = maxwforeachscreen/2; params2.height = maxhforeachscreen/2; params2.width = maxwforeachscreen/2; params3.height = maxhforeachscreen/2; params3.width = maxwforeachscreen/2; params4.height = maxhforeachscreen/2; params4.width = maxwforeachscreen/2; params1.setmargins(0, 0, 0, 0); params2.setmargins(maxwforeachscreen/2, 0, 0, 0); params3.setmargins(0, maxhforeachscreen/2, 0, 0); params4.setmargins(maxwforeachscreen/2, maxhforeachscreen/2, 0, 0); relativelayout.addview(imgview1, params1); relativelayout.addview(imgview2, params2); relativelayout.addview(imgview3, params3); relativelayout.addview(imgview4, params4); } }
you can set weightsum of parentlayout equal number of views.. , set 1 weight of every view...this make each views occupy equal space..
Comments
Post a Comment