Ben webview.I için yazı tipi ayarlamak için birçok soru bulduk denedim.webview yazı tipini ayarlamak için nasıl
En yakın klasörümde 10 html dosyası var. Swipe im'de webview'de birer birer görüntüleniyor, bu kadar işe yaramazsa, şimdi butona tıklamanız gerekiyor. Bunun için font tipini değiştirmem gerekiyor (10 dosya yüklüyorsun tüm html sayfaları için). Web görünümünde görüntülenen html'nin yazı tipi türünü nasıl değiştirebilirim?
1 yolu
mainContent.getSettings().setJavaScriptEnabled(true);
WebSettings webSettings = mainContent.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
mainContent.requestFocusFromTouch();
mainContent.setWebViewClient(new WebViewClient());
mainContent.setWebChromeClient(new WebChromeClient());
mainContent.loadUrl("file:///android_asset/"+filename.get(position));
Typeface font = Typeface.createFromAsset(getAssets(), "myfont.ttf");
webSettings.setFixedFontFamily(font);
webSettings.setDefaultFontSize(20);
içeriği doğru bu geçtiyseniz
Ben html içeriği almak var ve bir dizeye geçti, ben mümkün değildir, bunun içine geçmesine yapabilirsiniz 2 yolu çalışacak.
mainContent.getSettings().setJavaScriptEnabled(true);
WebSettings webSettings = mainContent.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
mainContent.requestFocusFromTouch();
mainContent.setWebChromeClient(new WebChromeClient());
mainContent.loadUrl("file:///android_asset/"+filename.get(position));
mainContent.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mainContent.setWebViewClient(null);
mainContent.loadUrl("javascript:window.HTMLOUT.processHTML('<div>'+document.getElementsByTagName('div')[0].innerHTML+'</div>');");
String pish = "<html><head><style type=\"text/css\">@font-face {font-family: MyFont;src: url(\"file:///android_asset/fonts/Kelvetica.ttf\")}body {font-family: MyFont;font-size: medium;text-align: justify;}</style></head><body>";
String pas = "</body></html>";
String myHtmlString = pish + page + pas; // here i can't able to get the `page`
mainContent.loadDataWithBaseURL(null,myHtmlString, "text/html", "UTF-8", null);
ve Etkinliğime
class MyJavaScriptInterface {
@SuppressWarnings("unused")
public void processHTML(final String html) {
runOnUiThread(new Runnable() {
public void run() {
Spanned page = Html.fromHtml(html);
System.out.println("content"+page);
}
});
}
}
yılında
i böyle çalıştıkmainContent.getSettings().setJavaScriptEnabled(true);
WebSettings webSettings = mainContent.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
mainContent.requestFocusFromTouch();
mainContent.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
mainContent.loadUrl("file:///android_asset/"+filename.get(position));
mainContent.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mainContent.setWebViewClient(null);
mainContent.loadUrl("javascript:(function() { var s=document.createElement('style');s.innerHTML ="
+ " '@font-face{font-family:ZawGyi-One;src:url('file:///android_asset/fonts/zeroesthree.ttf');}"
+ "body,div,h1,h2,h3,input,textarea{font-family:ZawGyi-One! important;}';"
+ "document.getElementsByTagName('head')[0].appendChild(s);document.getElementsByTagName('body')[0].style.fontFamily = \"ZawGyi-One\"})()");
}
});
3 yol, yukarıda koduna bu page
geçmesi gerekiyor. Yazı tipini değiştiremiyorum. Herhangi bir fikriniz varsa lütfen paylaşın. Son iki gündür bu problem üzerinde çalışıyorum. Önceden teşekkürler. Düğmeniz o zaman yazı güncelleyecek bir JavaScript işlevi çağırabilir Android düğmesini kullanarak click olayı
Statik bir dosyam var, db'den alıyorum ve pozisyonu kullanarak web görünümünde gösteriyorum .. –
kodunuzu değiştirmeyi denedim .. çalışmadı –
evet işe yaradı .. bu gibi hafif bir değişiklik .. 'mainC ontent.loadUrl ("javascript: document.getElementById ('maindiv'). style.fontFamily = 'kurye';"); 'tek tırnak içinde @ fonti yazılmalıdır @JaiSoni –