Android:如何使用动态TextView为不同的屏幕尺寸设置不同的文字大小?

时间:2012-12-14 01:31:55

标签: android

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

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

提前多多感谢。

1 个答案:

答案 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;