Dies kann in Android erfolgen. Ich habe drei Tage gebraucht, um dieses Problem zu lösen. Aber jetzt scheint es sehr einfach. Führen Sie die folgenden Schritte aus, um die benutzerdefinierte Schriftart für Webview festzulegen
1. Fügen Sie Ihre Schriftart zum Ordner "Assets" hinzu.
2. Kopieren Sie die Schriftart in das Dateiverzeichnis der Anwendung
private boolean copyFile(Context context,String fileName) {
boolean status = false;
try {
FileOutputStream out = context.openFileOutput(fileName, Context.MODE_PRIVATE);
InputStream in = context.getAssets().open(fileName);
// Transfer bytes from the input file to the output file
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
// Close the streams
out.close();
in.close();
status = true;
} catch (Exception e) {
System.out.println("Exception in copyFile:: "+e.getMessage());
status = false;
}
System.out.println("copyFile Status:: "+status);
return status;
}
3. Sie müssen die obige Funktion nur einmal aufrufen (Sie müssen eine Logik dafür finden).
copyFile(getContext(), "myfont.ttf");
4.Verwenden Sie den folgenden Code, um den Wert für Ihre Webansicht festzulegen. Hier verwende ich CSS, um die Schriftart festzulegen.
private String getHtmlData(Context context, String data){
String head = "<head><style>@font-face {font-family: 'verdana';src: url('file://"+ context.getFilesDir().getAbsolutePath()+ "/verdana.ttf');}body {font-family: 'verdana';}</style></head>";
String htmlData= "<html>"+head+"<body>"+data+"</body></html>" ;
return htmlData;
}
5.Sie können die obige Funktion wie folgt aufrufen
webview.loadDataWithBaseURL(null, getHtmlData(activity,htmlData) , "text/html", "utf-8", "about:blank");