2013-08-30 47 views
1

我编写了用于放大和缩小按钮的代码; 他们工作但算法错误。他们都增加了尺寸!?尽管我说顺利增长(每次点击只有0.01f),但点击它们的规模增加了大约50%(它变得太大),这是我的问题。放大和缩小按钮

final TextView rbc = (TextView) findViewById(R.id.rbc); 
rbc.setText(R.string.start); 
sizeup.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      float textsize = rbc.getTextSize(); 
      textsize += 0.05f; 
      rbc.setTextSize(textsize); 

     } 
    }); 
    sizedown.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      float textsize = rbc.getTextSize(); 
      textsize -= 0.05f; 
      rbc.setTextSize(textsize); 

     } 
    }); 

回答

0

混合单元问题。默认方法setTextSize(float)假定您输入sp单位(缩放的像素),而getTextSize()方法返回确切的像素大小。

你应该使用这样的:

this.setTextSize(TypedValue.COMPLEX_UNIT_PX, size); 

这将确保你有相同的单位工作。

+0

我不明白!你能解释一下吗? – Aminika

+0

而不是'rbc.setTextSize(textsize);'在两个监听器中使用'rbc.setTextSize(TypedValue.COMPLEX_UNIT_PX,textsize);'。最新的使用文字大小为px(像素单位),你从'rbc.getTextSize()' –

+0

得到了很多,感谢它的工作,谢谢佩德罗 – Aminika