24
24
import com .rae .cnblogs .dialog .IAppDialog ;
25
25
import com .rae .cnblogs .dialog .IAppDialogClickListener ;
26
26
import com .rae .cnblogs .dialog .impl .HintCardDialog ;
27
+ import com .rae .cnblogs .message .FontChangedEvent ;
27
28
import com .rae .cnblogs .message .ThemeChangedEvent ;
28
29
import com .rae .cnblogs .presenter .CnblogsPresenterFactory ;
29
30
import com .rae .cnblogs .presenter .IBlogContentPresenter ;
@@ -59,6 +60,7 @@ public class BlogContentFragment extends WebViewFragment implements IBlogContent
59
60
private ImageLoadingView mBookmarksView ;
60
61
private ImageLoadingView mLikeAnimView ; // 点赞做动画的视图
61
62
private BlogType mBlogType ;
63
+ private int mSourceTextZoom ; // 刚进来的字体大小
62
64
63
65
public static BlogContentFragment newInstance (BlogBean blog , BlogType type ) {
64
66
Bundle args = new Bundle ();
@@ -94,6 +96,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
94
96
@ Override
95
97
public void onViewCreated (View view , @ Nullable Bundle savedInstanceState ) {
96
98
super .onViewCreated (view , savedInstanceState );
99
+ mSourceTextZoom = mWebView .getSettings ().getTextZoom ();
97
100
if (BuildConfig .DEBUG ) {
98
101
mWebView .getSettings ().setCacheMode (WebSettings .LOAD_NO_CACHE );
99
102
} else {
@@ -102,14 +105,7 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
102
105
}
103
106
104
107
// 设置字体大小
105
- int pageTextSize = config ().getPageTextSize ();
106
- if (pageTextSize > 0 ) {
107
- // 默认字体大小
108
- int defaultTextSize = (int ) TypedValue .applyDimension (TypedValue .COMPLEX_UNIT_DIP , 18 , getResources ().getDisplayMetrics ());
109
- int zoom = mWebView .getSettings ().getTextZoom () * pageTextSize / defaultTextSize ;
110
- mWebView .getSettings ().setTextZoom (zoom );
111
- }
112
-
108
+ initFontSize ();
113
109
114
110
mPlaceholderView .setOnRetryClickListener (new View .OnClickListener () {
115
111
@ Override
@@ -146,6 +142,19 @@ public void onScrollChange(int x, int y, int oldX, int oldY) {
146
142
});
147
143
}
148
144
145
+ private void initFontSize () {
146
+ if (mSourceTextZoom <= 0 ) {
147
+ mSourceTextZoom = mWebView .getSettings ().getTextZoom ();
148
+ }
149
+ int pageTextSize = config ().getPageTextSize ();
150
+ if (pageTextSize > 0 ) {
151
+ // 默认字体大小
152
+ int defaultTextSize = (int ) TypedValue .applyDimension (TypedValue .COMPLEX_UNIT_DIP , 18 , getResources ().getDisplayMetrics ());
153
+ int zoom = mSourceTextZoom * pageTextSize / defaultTextSize ;
154
+ mWebView .getSettings ().setTextZoom (zoom );
155
+ }
156
+ }
157
+
149
158
@ Override
150
159
public Object getJavascriptApi () {
151
160
return new RaeJavaScriptBridge (getContext ()) {
@@ -379,6 +388,11 @@ public void scrollToTop() {
379
388
@ Subscribe
380
389
public void onEvent (ThemeChangedEvent event ) {
381
390
mWebView .loadUrl ("javascript:loadTheme(" + event .isNight () + ")" );
382
- // mWebView.reload();
391
+ }
392
+
393
+ @ Subscribe
394
+ public void onEvent (FontChangedEvent event ) {
395
+ initFontSize ();
396
+ mWebView .reload ();
383
397
}
384
398
}
0 commit comments