我为我的' TextViews'创建了一个自定义缩放。这样用户就可以放大和缩小。我想保持缩放的位置,以便下次他们进入应用程序时,他们不需要再次放大。我想知道最好的办法是什么?感谢。
我有两种方法
获取文字大小:
private void getTextViewSize() {
boolean gotTextViewsize = false;
boolean gotDocumentViewsize = false;
for (int i = 0; i < linearLayout.getChildCount(); i++) {
if (linearLayout.getChildAt(i) instanceof TextView) {
(prefs.edit().putFloat("textViewSize",((TextView) linearLayout.getChildAt(i)).getTextSize())).commit();
gotTextViewsize = true;
}else if(linearLayout.getChildAt(i) instanceof DocumentView){
(prefs.edit().putFloat("documentViewSize",((DocumentView) linearLayout.getChildAt(i)).getDocumentLayoutParams().getTextSize())).commit();
gotDocumentViewsize = true;
}
if(gotDocumentViewsize && gotTextViewsize){
return;
}
}
}
这将获得每次缩放后调用的文本视图的大小。
接下来是设置文字大小:
private void setTextSize() {
for (int i = 0; i < linearLayout.getChildCount(); i++) {
if (linearLayout.getChildAt(i) instanceof TextView) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
((TextView) linearLayout.getChildAt(i)).setTextSize(prefs.getFloat("textViewSize", 15.0f));
} else {
((TextView) linearLayout.getChildAt(i)).setTextSize(prefs.getFloat("textViewSize", 14.0f));
}
}else if (linearLayout.getChildAt(i) instanceof DocumentView){
((DocumentView) linearLayout.getChildAt(i)).getDocumentLayoutParams().setTextSize(prefs.getFloat("documentViewSize", 15.0f));
}
}
}
这应该是它的大小 然而,它比它更大。那是为什么?
答案 0 :(得分:3)
使用SharedPreferences。它们会在活动终止期间保留,直到用户清除应用数据为止。
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref");
Editor editor = pref.edit();
editor.putInt("zoomLevel",yourZoomLevel);
检索使用时:
yourZoomLevel=editor.getInt("zoomLevel",0);