gpt4 book ai didi

android - 方向变化增加了 TextView 的文本大小

转载 作者:太空狗 更新时间:2023-10-29 12:42:47 25 4
gpt4 key购买 nike

我想通过 SharedPreferences 保存我当前的文本大小,并在屏幕方向改变时将其设置回来。

我使用这段代码,但是当我改变屏幕方向时,它会使 textSize 变大...

package com.example.zz;

import android.app.ActionBar;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class MainActivity extends Activity {
TextView text;
float size;
ActionBar actionBar;
private final String TEXT_SIZE = "textsize";
final String MyPref = "preference";
SharedPreferences settings;
Editor editor;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView) findViewById(R.id.textView1);

settings = this.getSharedPreferences(MyPref, 0);
text.setTextSize(settings.getFloat(TEXT_SIZE, 0));
editor = settings.edit();
}

public void sizeUp(MenuItem item) {
size = text.getTextSize();
text.setTextSize(TypedValue.COMPLEX_UNIT_PX, (float) (size + 5));

}

public void sizeDown(MenuItem item) {
size = text.getTextSize();
text.setTextSize(TypedValue.COMPLEX_UNIT_PX, (float) (size - 5));

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.actionbar, menu);
return true;
}

@Override
protected void onStop() {
super.onStop();

SharedPreferences.Editor editor = settings.edit();
editor.putFloat(TEXT_SIZE, text.getTextSize());

editor.commit();
}

}

谢谢。

最佳答案

方法getTextSize()返回以像素为单位的文本大小,但是 setTextSize()sp 单位处理大小。这就是为什么你的文字看起来更大。在 setTextSize() 中使用之前,您应该缩放大小。你可以这样做:

SharedPreferences.Editor editor = settings.edit();
editor.putFloat(TEXT_SIZE, text.getTextSize()/getResources().getDisplayMetrics().scaledDensity); // put text size in sp
editor.commit();

关于android - 方向变化增加了 TextView 的文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22935490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com