大家好, 我试图允许我的用户通过按下操作栏中的按钮来更改活动的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();
}
有任何建议吗?
答案 0 :(得分: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)
答案 1 :(得分:0)
根据您对问题的描述,我在您提供的代码中找不到问题。我很确定,你的问题来自于复制过去(我们程序员通常很懒惰......当我们复制过去时经常发生我们忘记更改变量名称而我们最终会遇到这些问题)。查看按钮上的事件监听器,看看你是否设置了你拥有的两个项目案例(text_up)和(text_down)。