Può essere fatto su Android. Ho impiegato tre giorni per risolvere questo problema. Ma ora sembra molto facile. Segui questi passaggi per impostare il carattere personalizzato per Webview
1.Aggiungi il tuo carattere alla cartella delle risorse 2.Copia il carattere nella directory
dei file dell'applicazione
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.Devi chiamare la funzione sopra solo una volta (devi trovare una logica per questo).
copyFile(getContext(), "myfont.ttf");
4.Utilizzare il codice seguente per impostare il valore per la visualizzazione Web. Qui sto usando CSS per impostare il carattere.
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.È possibile chiamare la funzione di cui sopra come di seguito
webview.loadDataWithBaseURL(null, getHtmlData(activity,htmlData) , "text/html", "utf-8", "about:blank");