У меня есть веб-просмотр, загруженный данными HTML. Я хочу иметь возможность изменять шрифт HTML во время выполнения. Для этого у меня есть параметр, где пользователь может выбрать шрифт (шрифты берутся из каталога/system/fonts).Android - Изменение пользовательских шрифтов веб-поиска динамически
Как применить выбранный шрифт в WebView?
Я попытался это с помощью JavaScript:
String fontString = "font-family: 'myFont'; url: /system/fonts/DroidSans.ttf;";
if (android.os.Build.VERSION.SDK_INT < 19) {
webview.loadUrl("javascript:changeStyle('body', '" + fontString + "')");
} else {
webview.evaluateJavascript("javascript:changeStyle('body', '" + fontString + "')", null);
}
С changeStyle(), определенной в JavaScript HTML, в:
function changeStyle(tag, style) {
var myList = document.getElementsByTagName(tag); // get all p elements
var x = myList.length;
myList[0].setAttribute("style", style);
}
Это, однако, не работает. Я уверен, что нет ничего плохого в jS-функции changeStyle(), поскольку она работает для установки размера шрифта или цвета.
Это не объясняет, как применять системные шрифты к веб-просмотру. Например, Arial не является одним из системных шрифтов. Если я поместил roboto в качестве шрифта, ничего не произойдет. – Skywalker10
Как использовать пользовательские шрифты - это другой вопрос !! Этот ответ объясняет, как правильно применять шрифт динамически. Если вы хотите узнать, как использовать пользовательские шрифты, прочитайте это http://www.w3schools.com/cssref/css3_pr_font-face_rule.asp, или вы можете включить соответствующий файл шрифта в ваш проект. –