2012-09-13 21 views
5

Main.java:フォントスタイルは、WebViewのために設定されたカスタムフォントを働いていない

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; 
} 

のstrings.xml:

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

しかし大胆タグは機能していません。出力は次のとおりです。私は別の方法でsome report issue


を発見した方法による非太字

Main.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>"; 
    } 

正義(assestフォルダ内)d_textview.css:

/*@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> 

、今アンドロイド2.3.3または2.3.5が、に関する作業は、上のを動作していませんアンドロイド4.0.x

+0

CSSでスタイルを設定しようとしましたか? – Flo

+1

@Flo yes.and notbyby way。書き込み時に、 .boldClass {text-weight:bold} がcssで動作しなくなり、aapt.exeがクラッシュしました。 これも書いてください:b {text-weight:bold}がcssで、もう一度動作しません! –

答えて

5

Android OSの進行状況ではなくWebviewが原因で、不可能です。 Webviewのカスタムフォントを設定した場合、一部のデバイスやAndroid OSでは動作しますが、残念ながらそうではありません。

2

私が表示していた本当に大きなページで同じ問題が発生しました。マニフェストのwebviewでアクティビティをandroid:hardwareAccelerated="false"に設定してみてください。

+1

webviewには何が関連付けられていますか?もっと説明できますか? –

+1

私は、webviewがハードウェアアクセラレーションドローイングによってどのように影響を受けているのかはわかりませんが、ハードウェアアクセラレーションではサポートされていない機能がいくつかあります。それに関する詳細は次のとおりです:[Android Hardware Acceleration](http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html)。サポートされていない、または異なる動作をすることが知られている機能の一部は、関連するテキスト描画です。 – Chris

関連する問題