我想在android 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文件。自定义字体位于Path下 C:\用户\朱\ AndroidStudioProjects \ AktienApp \应用\ SRC \主\资产\字体
然后我用这个
加载webview中的内容WebView text_1_a = (WebView) one.findViewById(R.id.text_slide_type_a_1);
preparer.loadHTLMContentText(getString(R.string.Historie1), text_1_a);
但它不会改变字体。有人弄错了吗?
答案 0 :(得分: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");
}
}
我创建资源文件夹并将一个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>
在内部资产文件夹中,我为字体创建了另一个文件夹。 文件夹名称是字体。
所以我使用字体uri:file:///android_asset/fonts/Myfont.ttf