Проблема при загрузке пользовательских шрифтов в Android 4.2 (API 17)
У меня есть статический html файл "myhtml.html", хранящийся в моем каталоге assets/html/, и этот html загружает пользовательский шрифт (хранящийся под активами/шрифтами/) следующим образом:
<style type="text/css">
@font-face {
font-family: 'MyFont';
src: url('file:///android_asset/fonts/myfont.ttf');
}
</style>
Я загружаю этот html, используя следующий код:
String html = getHtml(); // This method loads the myhtml.html from asset. This loads properly.
WebView webView = (WebView) findViewById(R.id.webbox);
WebSettings webSettings = webView.getSettings();
webSettings.setDefaultTextEncodingName("utf-8");
webSettings.setFixedFontFamily("fonts/myfont.ttf");
webView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "UTF-8", null);
Этот код отлично работает со всеми версиями Android, кроме Android 4.2 (API 17).
В Android 4.2 загружается HTML, но пользовательский шрифт не загружается.
Ответы
Ответ 1
Я думаю, что это ошибка. Я подал https://code.google.com/p/android/issues/detail?id=54516
Если кто-то знает по-другому, пожалуйста, поправьте меня. Кроме того, если эта ошибка вас беспокоит, пожалуйста, запустите ее, чтобы привлечь больше внимания.
Ответ 2
Пожалуйста, используйте шрифт (svg). он работает для меня
Ответ 3
У меня та же проблема. Изменение
webView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "UTF-8", null);
к
webView.loadDataWithBaseURL("http://example.com", html, "text/html", "UTF-8", null);
устраняет проблему.