如何针对android上的不同屏幕分辨率动态修复文本大小

时间:2011-12-01 08:35:13

标签: android layout

我有一个带有页眉和页脚的主屏幕,在它之间我有十行文字要显示。文本大小在java中是硬编码的,但是当我运行应用程序时,页脚会被拉伸以调整文本大小。但是当它被拉伸时看起来很奇怪。有没有办法根据屏幕动态分配文本大小。请帮助我,如果你能看一下你会理解页脚问题的图像。

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));
    }

1 个答案:

答案 0 :(得分: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);
    }

希望对你有所帮助!