【问题标题】:Android: How to have different text sizes for different screen sizes with dynamic TextViews?Android:如何使用动态 TextViews 为不同的屏幕尺寸设置不同的文本尺寸?
【发布时间】:2012-12-14 21:15:43
【问题描述】:

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

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

非常感谢。

【问题讨论】:

标签: android


【解决方案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;  

【讨论】:

    猜你喜欢
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    相关资源
    最近更新 更多