I have a TableLayout on my app where I am adding rows programatically by getting data from the local SQLite DB. Since I also create the TextViews on each row programatically I need to specify one text size for them, and that size won't be suitable for all screen sizes. If I pick one that looks good on a smartphone, for instance, it will look too small on large tablets.
If I had the TextViews on the XML I could simply create a different layout for each screen size, but how can I achieve that flexibility in text size creating the TextViews programatically?
Thanks a lot in advance.
I ended up solving it with the approach below. Not the most elegant, but worked pretty well:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels/dm.xdpi,2);
double y = Math.pow(dm.heightPixels/dm.ydpi,2);
double screenInches = Math.sqrt(x+y);
int textsize = 0;
if(screenInches<5)
textsize = 16;
else if(screenInches<7.5)
textsize = 22;
else
textsize = 24;