einstellt Ich habe viele Frage gefunden, um Schriftart zum webview zu setzen. Ich habe versucht, ich kann nicht beheben kann.wie man Schriftart zur webview
Ich habe 10 html-Datei in meinem Assest-Ordner. In Swipe im eins nach dem anderen im Webview, bis das funktioniert gut, jetzt brauche ich auf Knopfdruck ändern Schriftart von diesem (für alle HTML-Seite, die im Laden von 10 Dateien). Wie kann ich die Schriftart meiner HTML-Anzeige in Webview ändern?
erste Weg
mainContent.getSettings().setJavaScriptEnabled(true);
WebSettings webSettings = mainContent.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
mainContent.requestFocusFromTouch();
mainContent.setWebViewClient(new WebViewClient());
mainContent.setWebChromeClient(new WebChromeClient());
mainContent.loadUrl("file:///android_asset/"+filename.get(position));
Typeface font = Typeface.createFromAsset(getAssets(), "myfont.ttf");
webSettings.setFixedFontFamily(font);
webSettings.setDefaultFontSize(20);
2. Art und Weise
Ich habe den Inhalt von HTML bekommen, und ich habe in einen String übergeben, kann ich nicht in der Lage, in sie passieren, wenn der Inhalt richtig diese weitergegeben wird funktionieren.
mainContent.getSettings().setJavaScriptEnabled(true);
WebSettings webSettings = mainContent.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
mainContent.requestFocusFromTouch();
mainContent.setWebChromeClient(new WebChromeClient());
mainContent.loadUrl("file:///android_asset/"+filename.get(position));
mainContent.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mainContent.setWebViewClient(null);
mainContent.loadUrl("javascript:window.HTMLOUT.processHTML('<div>'+document.getElementsByTagName('div')[0].innerHTML+'</div>');");
String pish = "<html><head><style type=\"text/css\">@font-face {font-family: MyFont;src: url(\"file:///android_asset/fonts/Kelvetica.ttf\")}body {font-family: MyFont;font-size: medium;text-align: justify;}</style></head><body>";
String pas = "</body></html>";
String myHtmlString = pish + page + pas; // here i can't able to get the `page`
mainContent.loadDataWithBaseURL(null,myHtmlString, "text/html", "UTF-8", null);
und in meiner Tätigkeit
class MyJavaScriptInterface {
@SuppressWarnings("unused")
public void processHTML(final String html) {
runOnUiThread(new Runnable() {
public void run() {
Spanned page = Html.fromHtml(html);
System.out.println("content"+page);
}
});
}
}
Ich brauche diese page
in obigen Code
mainContent.getSettings().setJavaScriptEnabled(true);
WebSettings webSettings = mainContent.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
mainContent.requestFocusFromTouch();
mainContent.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
mainContent.loadUrl("file:///android_asset/"+filename.get(position));
mainContent.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mainContent.setWebViewClient(null);
mainContent.loadUrl("javascript:(function() { var s=document.createElement('style');s.innerHTML ="
+ " '@font-face{font-family:ZawGyi-One;src:url('file:///android_asset/fonts/zeroesthree.ttf');}"
+ "body,div,h1,h2,h3,input,textarea{font-family:ZawGyi-One! important;}';"
+ "document.getElementsByTagName('head')[0].appendChild(s);document.getElementsByTagName('body')[0].style.fontFamily = \"ZawGyi-One\"})()");
}
});
ich so versucht haben, zu übergeben. Ich kann den Fonttyp nicht ändern. Jeder hat eine Idee, bitte teilen Sie es. Ich arbeite an diesem Problem seit zwei Tagen. Vielen Dank im Voraus.
ich habe eine statische dateien, ich bekomme es von db und zeigt in webview mit position .. –
ich habe versucht sie bearbeiten code .. es funktioniert nicht –
ja es hat funktioniert .. leichte änderung wie diese .. 'mainC ontent.loadUrl ("javascript: document.getElementById ('maindiv'). style.fontFamily = 'courier';"); 'Sie sollten den' fontname' in einfache Anführungszeichen setzen @JaiSoni –