2017-03-13 34 views
0

私はHTMLに問題が持っている:私はWebViewの中でカスタムフォントを使用したいが、それは、このコードを使用してフォントを変更doesnt't:フォントの変更のWebView AndroidStudio

public void loadHTLMContentText(String text, WebView view) { 

    String body; 
    String head = "<head><style type=\"text/css\">\n" + 
      "@font-face {\n" + 
      " font-family: Bamini;\n" + 
      " src: url(\"Bamini.ttf\")\n" + 
      "}\n" + 
      "body {\n" + 
      " font-family: Bamini;\n" + 
      " font-size: medium;\n" + 
      " text-align: justify;\n" + 
      "}\n" + 
      "</style></head>"; 
    if (text != null) { 
     body = text; 
    } else return; 
    String htmlData = "<html>" + head + "<body style=\"font-family: bamini\">" + body + "</body></html>"; 


    view.loadData(htmlData, "text/html; charset=utf-8", "utf-8"); 
    view.setBackgroundColor(0x00000000); 

} 

TTFファイルを.javaと同じフォルダにあります。

layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     HTMLPre preparer = new HTMLPre(); 


     View one = layoutInflater.inflate(R.layout.slide_type_a, container, false); 


     WebView header_1_a = (WebView) one.findViewById(R.id.header_slide_type_a_1); 
     preparer.loadHTLMContentHeader(getString(R.string.Historie1_header),header_1_a); 

お勧めはありますか?

答えて

2

TTFファイルは、2つの理由のために無意味であるの.java

と同じフォルダにあります。

  • のAndroidは、通常はJavaと一緒にランダムなファイルを使用していませんクラス

  • WebViewとにかくわからない

src/main/assets/ディレクトリを作成します(一般的なAndroid Studioプロジェクトで作業していることを前提とします)。あなたのフォントファイルをそこに置きます。 URLとしてfile:///android_asset/を使用してloadDataWithBaseURL()を使用してください。そして、最高のものを願ってください。

+0

したがって、loadDataとloadDataWithBaseURLの違いは、アセットのパスを転送することですか?だからフォントが見つからないので、これが私の問題を解決すると思います。私は後でそれを試してみる。 – LJulz

+1

@LJulz: 'loadData()'と 'loadDataWithBaseURL()'の違いは、あなたのHTMLに '' Bamini.ttf ''のような相対パスを使うことができるということです。次に、URLを指定できる場所でフォントを移動する必要があります。私は、あなたの目標はあなたのアプリでフォントをパッケージ化することであると仮定し、 'assets /'と 'file:/// android_asset /'を組み合わせることは 'WebView'の正しい組み合わせです。 – CommonsWare

+0

あなたは私をたくさん助けました、ありがとう! – LJulz

関連する問題