android - Find programatically generated TextView's height -
i need finding out height of textview after create programatically. generate textview this:
public textview drawtextview(string text, boolean center, boolean bold, int topmargin, int leftmargin, int textsize) { view vt = new textview(getbasecontext()); final textview textview = new autoresizetextview(vt.getcontext()); typeface tf = typeface.createfromasset(getassets(), "fonts/gothammedium.ttf"); textview.settext(text); textview.settextcolor(0xffffffff); if (bold) { textview.settypeface(tf, typeface.bold); } else { textview.settypeface(tf); } if (center) { textview.setgravity(gravity.center); } textview.settextsize(textsize); textview.setsingleline(false); layoutparams paramstext = new layoutparams(layoutparams.wrap_content, layoutparams.wrap_content); paramstext.leftmargin = leftmargin; paramstext.topmargin = topmargin; container.addview(textview, paramstext); return textview; }
what i'd able this:
textview text = drawtextview(map.get("business"), false, true, topmargin, 30, 40); topmargin += text.getheight() + 5; text = drawtextview(map.get("text"), false, true, topmargin, 30, 16); topmargin += text.getheight() + 5; text = drawtextview(map.get("detail"), false, false, topmargin, 30, 16); topmargin += text.getheight() + 5;
so know text different textviews isn't going overlap, there 5 pixel difference if text ends being taller 1 line of text, , in order account different textview sizes on different phones. text.getheight() returns 0. there can fix this, i've been looking on solution haven't found one. appreciated, thanks!
rather manually drawing @ absolute positions, suggest using vertical linearlayout. can set top margin of each textview 5 pixels. this:
linearlayout linearlayout = (linearlayout)findviewbyid(r.id.textcontainer); //or make 1 programmatically textview textview = ...; //your creation code above plus layout params 5 pixel top margin linearlayout.addview(textview);
Comments
Post a Comment