文本大小未按系统设置字体大小缩放

时间:2014-05-22 14:34:20

标签: android android-layout

我正在修复一个我之前有人创建的应用程序,并注意到一些奇怪的行为。当我在系统设置中更改字体大小时,我的主菜单上的某些文本大小没有改变。以下是在我的活动中设置文本大小的代码。相关值为 landing_text_size

        int height = (int) displayHeight;
    int width = (int) displayWidth;
    textSize = getApplicationContext().getResources().getDimension(
            R.dimen.landing_text_size);
    textViewHeight = (int) ((textSize * 2) + 40);
    // int separatorHeight = (int) getApplicationContext().getResources()
    // .getDimension(R.dimen.landing_grid_margin);
    int space = (int) ((getApplicationContext().getResources()
            .getDimension(R.dimen.landing_grid_view_space)));
    columnWidth = (int) ((height
            - ((int) (getApplicationContext().getResources()
                    .getDimension(R.dimen.landing_header_size)))
            - ((int) (getApplicationContext().getResources()
                    .getDimension(R.dimen.landing_footer_size)))
            - (textViewHeight * numberOfRows) - (space * numberOfRows)) / numberOfRows);

    gridView = (GridView) findViewById(R.id.gridViewLandingPage);
    gridView.setColumnWidth(columnWidth);
    initializeGridView();

    gridView = (GridView) findViewById(R.id.gridViewLandingPage);
    gridView.setColumnWidth(columnWidth);

稍后在代码中设置文本视图的文本大小。

textView.setTextSize(textSize);

我一直在研究在xml文件中建立文本大小的不同方法,并发现了这个问题:What is the difference between "px", "dp", "dip" and "sp" on Android?

显而易见的想法是在我的维度文件中声明我的文本大小时使用sp。问题是,我是。

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <dimen name="landing_image_size">70dp</dimen>
    <dimen name="landing_header_size">40dp</dimen>
    <dimen name="product_image_size">100dp</dimen>
    <dimen name="stories_image_size">91dp</dimen>
    <dimen name="landing_footer_size">60dp</dimen>
    <dimen name="slide_max_size">140dp</dimen>
    <dimen name="tab_size">100dp</dimen>
    <dimen name="landing_text_size">7sp</dimen>
    <dimen name="landing_grid_view_space">10dp</dimen>

</resources>

当我在系统设置中更改字体大小时,文本大小在我的应用程序中不会改变。我知道我有正确的价值,因为当我改变它时,10 sp文本会变大。该项目正在使用api 4.1.2,与我的手机相同。怎么可能出错?为什么文字大小不变?

1 个答案:

答案 0 :(得分:1)

我没有足够的声望点,所以添加作为答案.. 应用程序中的字体大小不会像您在dimens.xml中指定的那样使用该字体大小。如果您将从dimens.xml中删除字体大小,我认为当您增加系统字体大小时字体大小会增加。 / p>