2013-08-30 49 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