2011-12-01 56 views
0

我有一个主页和页眉,页脚之间,我有10行文本显示。在java中的文本大小是硬编码,但是当我运行该应用程序页脚得到拉伸调整与固定的文本大小。但它在伸展时看起来很奇怪。有没有一种方法可以根据屏幕动态分配文本大小。请帮助我,如果你可以看看图像,你会明白页脚问题。如何动态修复不同屏幕分辨率的文字大小Android

if (dpiClassification == DisplayMetrics.DENSITY_HIGH) { 
     if (isTablet) { 
      textSize = (int) (((d.getHeight() - (totImageHeight))/10) - (25 * dm.density)); 
     } else { 
      textSize = (int) (((d.getHeight() - (totImageHeight))/10) - (11 * dm.density)); 
     } 

    } else if (dpiClassification == DisplayMetrics.DENSITY_MEDIUM) { 
     if (isTablet) { 
      textSize = 90;// (int) (((d.getHeight() - (totImageHeight))/
          // 10) - (15 * dm.density)); 
     } else { 
      textSize = (int) (((d.getHeight() - (totImageHeight))/10)); 
     } 
    } else { 
     textSize = (int) (((d.getHeight() - (totImageHeight))/10)); 
    } 
+0

尝试使用sp单位代替文本大小的px。 – Warpzit

+0

@Pink任何机会,你是一样的[人这个](http://stackoverflow.com/users/991423/pink-candy)? – Reno

+0

是的,我出于某种原因无法访问该帐户,这就是为什么创建一个新帐户。对不起 – cavallo

回答

2

尝试设置你的文字大小在DP和动态转换DP到PX,并把这个PX值

*.textSize(pxValue); 

要转换我下次使用代码:

private static DisplayMetrics metrics = null; 
private static float density = 0.0; 

private int dpToPxConverter(Context context, int dp){ 
     if (metrics == null) { 
      metrics = context.getResources().getDisplayMetrics(); 
      density = metrics.density; 
     } 
     return (int) (density * dp + 0.5f); 
    } 

希望它帮你!