2017-03-13 9 views
0

私はWebViewの中でカスタムフォントを使用したいアンドロイドStudioでは、どのように私はWebViewののフォントを変更することができますか?^

public void loadHTLMContentText(String text, WebView view) { 

    String body; 
    String head = "<head><style><style type=\"text/css\">@font-face {font-family: 'Standard';src: url('file:///android_asset/fonts/Standard.ttf')}body {font-family: Standard;text-align: justify;}</style></head>"; 
    if (text != null) { 
     body = text; 
    } else return; 
    String htmlData = "<html>" + head + "<body>" + body + "</body></html>"; 


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

} 

私は内容のHTLMファイルを生成するには、このコードを使用します。カスタムフォントは、パス C:¥Users¥julia¥AndroidStudioProjects¥AktienApp¥app¥src¥main¥assets¥fontsの下にあります。

それから私は、この

WebView text_1_a = (WebView) one.findViewById(R.id.text_slide_type_a_1); 
     preparer.loadHTLMContentText(getString(R.string.Historie1), text_1_a); 

とWebViewの中でコンテンツをロードしかし、それは、フォントを変更しません。誰も私の失敗を得た?

+0

:ファイルをhttp://stackoverflow.com/a/8369422/2657100 – nandsito

+0

助けていません:/ – LJulz

答えて

0

ここでは、WebViewでフォントを変更するための簡単なデモプログラムを作成します。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout01" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:id="@+id/imageLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:padding="5dp"> 

     <WebView 
      android:id="@+id/webview1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 

    </LinearLayout> 

</LinearLayout> 

MainActivity.java

public class MainActivity extends AppCompatActivity { 

    WebView webview1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     webview1 = (WebView) findViewById(R.id.webview1); 
     webview1.loadUrl("file:///android_asset/demo.html"); 
    } 
} 

そして私は、資産フォルダを作成し、そのフォルダ内の1つのHTMLファイルを置きます。

demo.html

<html> 
<head> 
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> 
    <style type="text/css"> 
     @font-face { font-family: 'Persian'; src: url('file:///android_asset/fonts/Myfont.ttf'); } 
     @font-face { font-family: 'Persian2'; src: url('file:///android_asset/fonts/newfont.ttf'); } 
     body {font-family: 'Persian';} 
     h1 {font-family: 'Persian2';} 
    </style> 
</head> 
<body> 
<h1> 
    Welcome to CustomFont Demo 
</h1> 
    Testing text 
</body> 
</html> 

や資産フォルダ内の、私はフォントのための1つの以上のフォルダを作成します。 フォルダー名はフォントです。

だから私のようなフォントのURIを使用します。それが役立つかもしれない///android_asset/fonts/Myfont.ttf

関連する問題