使textview尺寸适合所有屏幕的最佳解决方案是什么?

时间:2014-05-30 12:10:24

标签: android textview width

我动态地在我的应用中生成textview,我想让它的宽度和高度与所有屏幕兼容。 我正在使用以下代码来制作它,但是当在Galaxy s3上测试时,我发现它非常小,尽管平板电脑的尺寸相同... 那么这样做的最佳解决方案是什么?

提前致谢:)

Configuration config = getResources().getConfiguration();

            int width = 0;
            int height = 0;
            int textSize = 0;

            if ((config.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {
                width = 30;
                height = 30;
                textSize = 24;
                Log.e("small", "small");
            } else if ((config.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {
                width = 55;
                height = 55;
                textSize = 24;
                Log.e("normal", "normal");
            } else if ((config.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {
                width = 45;
                height = 45;
                textSize = 32;
                Log.e("large", "large");
            } else {
                Log.e("xlarge", "xlarge");
                width = 60;
                height = 60;
                textSize = 40;
            }

            // http://www.designbyexperience.com/px-to-dp-converter/

            spaceViews[i].setLayoutParams(new LayoutParams(width, height));

            spaceViews[i].setGravity(Gravity.CENTER);
            spaceViews[i].setTextColor(Color.WHITE);

2 个答案:

答案 0 :(得分:0)

你可以试试这个github链接android library

答案 1 :(得分:0)

使用该方法确保所有设备的一致性:

int dpToPx(final int dp)
{
    return (int) (dp * getResources().getDisplayMetrics().density + 0.5f);
}