Można to zrobić w systemie Android. Rozwiązanie tego problemu zajęło mi trzy dni. Ale teraz wydaje się to bardzo łatwe. Wykonaj poniższe czynności, aby ustawić niestandardową czcionkę dla Webview
1. Dodaj czcionkę do folderu zasobów 2.
Skopiuj czcionkę do katalogu plików aplikacji
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. Powyższą funkcję musisz wywołać tylko raz (musisz znaleźć do tego jakąś logikę).
copyFile(getContext(), "myfont.ttf");
4. Użyj poniższego kodu, aby ustawić wartość widoku internetowego. Tutaj używam CSS, aby ustawić czcionkę.
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. Możesz wywołać powyższą funkcję jak poniżej
webview.loadDataWithBaseURL(null, getHtmlData(activity,htmlData) , "text/html", "utf-8", "about:blank");