Android:如何在不同屏幕尺寸上使用动态TextView具有不同的文本大小?

3
在我的应用程序中,我有一个TableLayout,通过从本地SQLite DB获取数据来编程方式添加行。由于我还要在每一行中编程方式创建TextView,因此我需要为它们指定一个文本大小,而该大小不适合所有屏幕尺寸。如果我选择在智能手机上看起来不错的大小,那么在大型平板电脑上会显得太小。
如果我在XML上有TextView,我可以为每个屏幕尺寸创建不同的布局,但是如何在使用编程方式创建TextView时实现文本大小的灵活性呢?
非常感谢。

1
请执行以下操作:https://dev59.com/c2kx5IYBdhLWcg3wA_xS - jsimon
1
你应该阅读这篇文章:https://dev59.com/iW445IYBdhLWcg3wGmk6 它可能会对你有所帮助。 - VAdaihiep
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;  

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接