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