3

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

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

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

}


有什么建议吗?

4

2 回答 2

3

尝试将两者更改为:

mBodyText.setTextSize(TypedValue.COMPLEX_UNIT_PX, Textsize);

getTextSize()返回以像素为单位的大小,但setTextSize(float size)将其解释为“缩放像素”(sp) 单位。要指定您需要使用的像素setTextSize (int unit, float size)

http://developer.android.com/reference/android/widget/TextView.html#getTextSize() http://developer.android.com/reference/android/widget/TextView.html#setTextSize(float)

于 2013-07-10T10:37:50.567 回答
0

根据您对问题的描述,我无法在您提供的代码中找到问题。我很确定,您的问题来自复制过去(我们程序员通常很懒惰......当我们复制过去时,经常会发生我们忘记更改变量名并最终遇到这些问题的情况)。查看按钮上的事件侦听器,看看您是否设置了 (text_up) 和 (text_down) 两个项目案例。

于 2013-07-10T10:45:41.827 回答