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 に答える