通过用户选择增大和减小 android 应用程序的字体大小

Increasing and Decreasing the font sizes of the android application by user selection

实际上我想通过用户选择在我的应用程序中指定自定义文本大小。下图展示了 idea/theme

所以,为此我有一个实现这个的想法。

我将在视图中创建一个对话框,其中包含用于增大/减小字体大小的用户输入选项。更改字体大小后,我会将其应用于应用程序。 (+) & (-) 标志将用于更改字体大小以及搜索栏。

我的问题是构建 android class / 库中是否有任何特定的字体样式/大小更改/是否有其他可用的想法?

如有任何帮助,我们将不胜感激。意思是虽然我会带来一些我尝试过的东西。谢谢

要增加 textView 的大小,您可以使用

_percentField.setTextSize(values[0]*2);

其中 values 是一个数组。

要减少你可以试试

 _percentField.setTextSize(values[0]/2);

你可以查看

btnTextDeSave.setOnClickListener(onClickEven);
btnTextInSave.setOnClickListener(onClickEven);

public OnClickListener onClickEven = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
            break;
        case R.id.btTextDeSave:
            txtDescriptionSave.setTextSize(TypedValue.COMPLEX_UNIT_PX, (txtDescriptionSave.getTextSize() - 2f));
            break;
        case R.id.btTextInSave:
            txtDescriptionSave.setTextSize(TypedValue.COMPLEX_UNIT_PX, (txtDescriptionSave.getTextSize() + 2f));
            break;

        default:
            break;
        }

    }
};

你可以试试这个-

    textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, <font-size value in integer> );

    // to update your changes
    textView.invalidate();

您可以通过以下方式轻松完成此操作:

//Adjust values with whatever your need is
int SIZE_LARGE = 24; 
int SIZE_SMALL= 16;

btnLargeText.setOnClickListener(new OnClickListener() {
    
    @Override
    public void onClick(View arg0) {
        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, LARGE_SIZE);
    }
});

btnSmallText.setOnClickListener(new OnClickListener() {
    
    @Override
    public void onClick(View arg0) {
        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, SIZE_SMALL);
    }
});

这样做

float fs = prefs.getFloat("fontsize", 12);
seekbar.setProgress((int)fs);
layout.setTextSize(TypedValue.COMPLEX_UNIT_PX,seekbar.getProgress());

并且不要忘记 onProgressChanged:

layout.setTextSize(TypedValue.COMPLEX_UNIT_PX,progress);