android - 为 webview 设置自定义字体时字体样式不起作用

标签 android

主要.java:

Main instanceMain = this;
    String Dataz = FN.getHtmlData(instanceMain,"BMitra",20,(getResources().getString(R.string.matn2)));
    btne.loadDataWithBaseURL("file:///android_asset/", Dataz, "text/html", "utf-8", null);

FN.java:

public static String getHtmlData(Context context,String fontname,Integer fontsize, String data){
    String head = "<head><style type=\"text/css\">@font-face {font-family: 'MYFNT';src: url('"+fontname+".ttf');} body {text-align:justify;font-family: 'MYFNT';color: Black;}</style></head>";
    String htmlData= "<html>"+head+"<body dir=\"rtl\">"+data+"</body></html>" ;
    return htmlData;
 }

字符串.xml:

<string name="matn2">
    <![CDATA[
    <html><body><b>سلام</b> non bold text . <b>english bold</b></body></html>
    ]]>
</string>

但是 bold 标签不起作用,输出是: سلام english bold 。非粗体文字

顺便说一句,我找到了some report issue


另一种方式:

主要.java :

Main instanceMain = this;
    String Dataz = FN.getHtmlData(instanceMain,getResources().getString(R.string.matn2)));
    btne.loadDataWithBaseURL("file:///android_asset/", Dataz, "text/html", "utf-8", null);

FN.java:

public static String getHtmlData(Context paramContext, String paramString)
  {
    return "<!DOCTYPE HTML><html lang=\"fa-ir\" dir=\"rtl\"><head>" + "<link rel=\"stylesheet\" type=\"text/css\" href=\"justified_textview.css\" />" + "</head>" + "    <body>" + paramString + "</body></html>";
  }

justified_textview.css(在 assest 文件夹中):

/*@font-face {
font-family:"MyFont";
src:url('file:///android_asset/BMITRA.TTF');
}

@font-face {
font-family:"MyFont";
src:url('file:///android_asset/BMITRABD.TTF');
font-weight: bold;
}*/

@font-face {
font-family: 'Conv_BMITRA';
src: url('file:///android_asset/BMITRA.ttf');
font-weight: normal;
font-style: normal;
}

@font-face {
font-family: 'Conv_BMITRA';
src: url('file:///android_asset/BMITRABD.ttf');
font-weight: bold;
font-style: normal;
}


body {
font-family:'Conv_BMITRA';
text-align:justify;
line-height: 20pt;  
color: Black;      
}

和 matn2(strings.xml) :

<string name="matn">
    <![CDATA[
    م ولادت توی وب با سی اس اس
    normal text
    <b>ولایت بولد م bold text</b>
    ]]>
    </string>

现在它在 android 2.3.3 或 2.3.5 上工作,但在 android 4.0.x 上不工作

最佳答案

这是不可能的,因为 Webview 而不是 Android 操作系统的进步被打破了。遗憾的是,如果您为 Webview 设置自定义字体,在某些设备和 Android 操作系统中它可以工作,而在其他一些设备和系统中则不能。

关于android - 为 webview 设置自定义字体时字体样式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12401219/

相关文章:

java - Spring RestTemplate : sending array/list of String in GET request

android - android中的动画

android - 将SD卡图像设置为ImageView?

java - 以编程方式构建约束布局

java - 如何从 Android 应用程序内部发送 Web 请求?

没有任何用户交互的 Android 应用程序

android如何停止gps

java - OpenCV:应用adaptiveThreshold函数后最大值为-1

java - ksoap2 复杂参数

android - 解析查询从指针值返回 whereEqualTo