【发布时间】:2018-05-28 23:42:17
【问题描述】:
我为我的“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));
}
}
}
这应该是原来的大小 但是,它比以前大得多。这是为什么呢?
【问题讨论】:
标签: android textview sharedpreferences font-size