Nó có thể được thực hiện trong Android. Tôi đã mất ba ngày để giải quyết vấn đề này. Nhưng bây giờ nó có vẻ rất dễ dàng. Làm theo các bước sau để đặt phông chữ tùy chỉnh cho Webview
1. Thêm phông chữ của bạn vào thư mục
nội dung 2. Sao chép phông chữ vào thư mục tệp của ứng dụng
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. Bạn chỉ phải gọi hàm trên một lần (bạn phải tìm một số logic cho việc này).
copyFile(getContext(), "myfont.ttf");
4.Sử dụng mã bên dưới để đặt giá trị cho chế độ xem web của bạn. Ở đây tôi đang sử dụng CSS để đặt phông chữ.
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. bạn có thể gọi hàm trên như bên dưới
webview.loadDataWithBaseURL(null, getHtmlData(activity,htmlData) , "text/html", "utf-8", "about:blank");