สามารถทำได้ใน Android ฉันใช้เวลาสามวันในการแก้ปัญหานี้ แต่ตอนนี้ดูเหมือนง่ายมาก ทำตามขั้นตอนเหล่านี้เพื่อตั้งค่าแบบอักษรที่กำหนดเองสำหรับ Webview
1. เพิ่มแบบอักษรของคุณไปยังโฟลเดอร์ assets
2. คัดลอกแบบอักษรไปยังไดเร็กทอรีไฟล์ของแอปพลิเคชัน
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);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
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. คุณต้องเรียกใช้ฟังก์ชันด้านบนเพียงครั้งเดียว (คุณต้องหาตรรกะบางอย่างสำหรับสิ่งนี้)
copyFile(getContext(), "myfont.ttf")
4. ใช้รหัสด้านล่างเพื่อกำหนดมูลค่าสำหรับ Webview ของคุณ ที่นี่ฉันใช้ CSS เพื่อตั้งค่าแบบอักษร
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. คุณสามารถเรียกใช้ฟังก์ชันด้านบนดังต่อไปนี้
webview.loadDataWithBaseURL(null, getHtmlData(activity,htmlData) , "text/html", "utf-8", "about:blank");