3

我的应用程序上有一个 TableLayout,我通过从本地 SQLite DB 获取数据以编程方式添加行。由于我还以编程方式在每一行上创建 TextView,我需要为它们指定一个文本大小,并且该大小不适用于所有屏幕大小。例如,如果我选择一款在智能手机上看起来不错的手机,它在大型平板电脑上会显得太小。

如果我在 XML 上有 TextViews,我可以简单地为每个屏幕尺寸创建不同的布局,但是如何以编程方式创建 TextViews 来实现文本尺寸的灵活性?

提前非常感谢。

4

1 回答 1

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;  
于 2012-12-14T10:37:51.607 回答