我的应用程序上有一个TableLayout,我通过从本地SQLite DB获取数据以编程方式添加行。由于我还以编程方式在每行上创建TextView,因此我需要为它们指定一个文本大小,并且该大小不适合所有屏幕大小。例如,如果我选择一款在智能手机上看起来不错的产品,它在大型平板电脑上看起来会太小。
如果我在XML上有TextViews,我可以为每个屏幕大小创建不同的布局,但是如何以编程方式创建TextViews的文本大小实现灵活性?
提前多多感谢。
答案 0 :(得分:1)
我最终用下面的方法解决了这个问题。不是最优雅,但工作得很好:
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;