Wie ändere ich das Schriftbild von Webview in Android?
Möchte ich ändern Sie die Standard-schriftart von "Webansicht" aus, um eine benutzerdefinierte schriftart. Ich bin mit webview bei der Entwicklung eines zweisprachigen browser-app für Android.
Ich versucht, immer eine Instanz des benutzerdefinierten schriftart, indem ich die benutzerdefinierte schriftart in Vermögenswerte. Aber noch konnte nicht setzen webview ist die Standard-schriftart auf meine Schrift.
Dies ist, was ich versucht habe:
Typeface font = Typeface.createFromAsset(getAssets(), "myfont.ttf");
private WebView webview;
WebSettings webSettings = webView.getSettings();
webSettings.setFixedFontFamily(font);
Kann jemand dies korrigieren, oder schlagen eine andere Methode zum ändern webview Standard-schriftart, um eine benutzerdefinierte schriftart?
Dank!
InformationsquelleAutor der Frage Dhanika | 2010-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es ein funktionierendes Beispiel in dieses Projekt. Es hinausläuft:
assets/fonts
Ordner, legen Sie die gewünschte OTF-oder TTF-Schrift (hier MyFont.otf)Erstellen Sie eine HTML-Datei, die Sie verwenden werden, für die der WebView den Inhalt, die innerhalb der
assets
Ordner (hier imassets/demo/my_page.html
):Laden der HTML-Code in den WebView code:
Beachten Sie, dass die Injektion der HTML durch
loadData()
ist nicht gestattet. Gemäß der Dokumentation:Als @JaakL schlägt in den Kommentar unten, für das laden von HTML-Code aus einem string, sollten Sie stattdessen bieten die Basis-URL, der auf Ihre Vermögenswerte:
Beim Verweis auf die schriftart in
htmlData
Sie können dann nutzen Sie einfach/fonts/MyFont.otf
(wobei die Basis-URL).InformationsquelleAutor der Antwort Paul Lammertsma
Ich bin mit diesem code :
InformationsquelleAutor der Antwort Omid Omidi
Sogar noch einfacher, Sie können die Asset-URL-format, Verweis auf die Schrift. Keine Programmierung erforderlich!
...
InformationsquelleAutor der Antwort Dan Syrstad
Kann man das in Android. Ich brauchte drei Tage, um dieses Problem zu lösen. Aber jetzt scheint es sehr einfach.
Gehen Sie folgendermaßen vor, um benutzerdefinierte schriftart für Webview
1.Fügen Sie Ihre schriftart Ordner "assets"
2.Kopieren Sie die font-Anwendung, die Dateien von Verzeichnis
3.Sie haben nach Aufruf der obigen Funktion nur einmal (Sie finden einige Logik für diese).
4.Verwenden Sie den nachstehenden code, um Wert für Ihre webview. Hier bin ich mit CSS schriftart festlegen.
5.Sie können rufen Sie die obige Funktion, wie unten
InformationsquelleAutor der Antwort binary
ich dies durch die oberen Antworten mit diesen Ergänzungen:
und verwenden Sie dann
src: url("file:///android_asset/fonts/YourFont...
vielen Dank an alle:)
InformationsquelleAutor der Antwort V. Kalyuzhnyu
Viele der oben genannten Antworten Arbeit liegen ein Charme, wenn Sie Ihre Inhalte im Ordner "assets".
Jedoch, wenn Sie mich mögen, möchten, downloaden Sie und speichern Sie alle Ihre Vermögenswerte von einem server zum internen Speicher Sie können stattdessen
loadDataWithBaseURL
und verwenden Sie einen Verweis auf Ihre internen Speicher als die baseUrl. Dann werden alle Dateien relativ zu der geladenen html-und werden gefunden und richtig benutzt.In meinem internen Speicher habe ich gespeichert haben, die folgenden Dateien:
Dann habe ich den folgenden code verwenden:
CSS-Datei verwendet, in der obigen html-Code (Stil.css):
Ich habe nur versucht, diese während targeting minSdkVersion 19 (4.4) also ich habe keine Ahnung, ob es funktioniert auf anderen Versionen
InformationsquelleAutor der Antwort lejonl
Können Sie es tun durch die Verwendung von CSS. Ich habe es mit einer app, aber es funktioniert nicht in Android 2.1, wie es ist ein bekannter bug mit Android-browser 2.1.
InformationsquelleAutor der Antwort
Das Problem ist, es muss in einen Ordner, versuchen Sie,". /myfont.ttf" statt, wenn nicht die schriftart in einem Ordner in assets wie "fonts/myfont.ttf", die die Arbeit für Sie sicher.
InformationsquelleAutor der Antwort schwiz
InformationsquelleAutor der Antwort Suport Pfrproject
Dies ist, wie wollen Sie laden htmlData in einem webview:
wo
getHtmlData(activity,**htmlData**)
gibt einen string zurück, der html-code.InformationsquelleAutor der Antwort Alex Aung