Ich habe ein Problem mit HTML bekam: Ich habe eine benutzerdefinierte Schriftart in einer Webansicht verwenden möchten, aber es doesnt't mithilfe dieser Code die Schriftart ändern:Schriftart ändern WebView Android Studio
public void loadHTLMContentText(String text, WebView view) {
String body;
String head = "<head><style type=\"text/css\">\n" +
"@font-face {\n" +
" font-family: Bamini;\n" +
" src: url(\"Bamini.ttf\")\n" +
"}\n" +
"body {\n" +
" font-family: Bamini;\n" +
" font-size: medium;\n" +
" text-align: justify;\n" +
"}\n" +
"</style></head>";
if (text != null) {
body = text;
} else return;
String htmlData = "<html>" + head + "<body style=\"font-family: bamini\">" + body + "</body></html>";
view.loadData(htmlData, "text/html; charset=utf-8", "utf-8");
view.setBackgroundColor(0x00000000);
}
Die ttf-Datei befindet sich im selben Ordner wie die .java.
layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
HTMLPre preparer = new HTMLPre();
View one = layoutInflater.inflate(R.layout.slide_type_a, container, false);
WebView header_1_a = (WebView) one.findViewById(R.id.header_slide_type_a_1);
preparer.loadHTLMContentHeader(getString(R.string.Historie1_header),header_1_a);
Irgendwelche Vorschläge?
Also der Unterschied zwischen loadData und loadDataWithBaseURL ist, dass ich den Pfad der Assets übertrage? Also ich denke, das wird mein Problem lösen, weil die Schriftart nicht gefunden wurde. Ich werde es später versuchen. – LJulz
@LJulz: Der Unterschied zwischen 'loadData()' und 'loadDataWithBaseURL()' besteht darin, dass Sie relative Pfade wie '' Bamini.ttf'' in Ihrem HTML verwenden können. Sie müssen dann die Schriftart an einen Ort verschieben, für den Sie eine URL angeben können. Ich gehe davon aus, dass es das Ziel ist, die Fonts mit Ihrer App zu packen, und 'assets /', zusammen mit 'file: /// android_asset /', ist die richtige Kombination für 'WebView'. – CommonsWare
Wow du hast mir sehr geholfen, Danke! – LJulz