Java 更改字体大小时遇到问题

Java 更改字体大小时遇到问题,java,android,Java,Android,大家好,, 我试图通过按下操作栏中的按钮,允许用户更改活动编辑文本中的字体大小(增加或减少)。我已经让字体大小增加工作,但出于某种原因,字体大小减少按钮使字体大小也增加 我附上(我认为是)相关代码。如果您需要查看其他代码,请告诉我 public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.TEXT_UP: doTe

大家好,, 我试图通过按下操作栏中的按钮,允许用户更改活动编辑文本中的字体大小(增加或减少)。我已经让字体大小增加工作,但出于某种原因,字体大小减少按钮使字体大小也增加

我附上(我认为是)相关代码。如果您需要查看其他代码,请告诉我

public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
        case R.id.TEXT_UP:
            doTextUp();
            break;
        case R.id.TEXT_DOWN:
            doTextDown();
            break;
         default:
                return super.onOptionsItemSelected(item);
            }
            return false;
        }




private void doTextDown() {
    mBodyText = (EditText) findViewById(R.id.body);
    float Textsize = mBodyText.getTextSize() - 1;
    mBodyText.setTextSize(Textsize);
    Toast.makeText(getApplicationContext(), "in the text down",Toast.LENGTH_SHORT).show();

}

private void doTextUp() {
    mBodyText = (EditText) findViewById(R.id.body);
    float Textsize = mBodyText.getTextSize() + 1;
    mBodyText.setTextSize(Textsize);
    Toast.makeText(getApplicationContext(), "in the text up",Toast.LENGTH_SHORT).show();

}

有什么建议吗?

尝试将两者都改为:

mBodyText.setTextSize(TypedValue.COMPLEX_UNIT_PX, Textsize);
getTextSize()
返回以像素为单位的大小,但
setTextSize(float size)
将其解释为“缩放像素”(sp)单位。要指定像素,需要使用
setTextSize(整数单位,浮点大小)


根据您对问题的描述,我无法在您提供的代码中找到问题。我很确定,您的问题来自于过去的复制(我们程序员通常都很懒……当我们在过去复制时,经常会忘记更改变量名,最终导致这些问题)。查看按钮上的事件侦听器,看看您是否同时设置了项目大小写(text\u up)和(text\u down)。

getTextSize()以像素为单位获取大小,因此递减1不会产生任何影响(对于许多设备而言)。尝试以更大的幅度递减,或使用不同的度量值!如果这不是问题,请先告诉我,然后我们可以调查一下。