Webview изменить шрифт? _android - PullRequest
1 голос
/ 16 декабря 2011

Я не знаю, как изменить шрифт для Webview.

Теперь загрузите стили html и css, примененные для того, чтобы изменить шрифт там любым другим способом?

также, я хочу, чтобы веб-сайт менял шрифт в режиме реального времени.

Что мне делать.

------------- мой источник ------

public class WebviewActivity extends Activity {
    /** Called when the activity is first created. */
    TextView tx;
    String html;
    WebView webview;
    WebSettings webset;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        webview=(WebView)findViewById(R.id.webView1);
        html="http://naver.com";

        webview.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // TODO Auto-generated method stub
                html=DownloadHtml(url);
                webview.loadDataWithBaseURL(null, getHtmlData(WebviewActivity.this,html) , "text/html", "UTF-8", "about:blank");  

                return super.shouldOverrideUrlLoading(view, url);
            }
        });
        copyFile(this.getBaseContext(), "aa.TTF"); 
        webset=webview.getSettings();
        webset.setJavaScriptEnabled(true);

        webview.loadUrl(html);
        } 
    private boolean copyFile(Context context,String fileName) { 
        boolean status = false; 
        try {  
            FileOutputStream out = context.openFileOutput(fileName, Context.MODE_PRIVATE); 
            InputStream in = context.getAssets().open(fileName); 
            // Transfer bytes from the input file to the output file 
            byte[] buf = new byte[1024]; 
            int len; 
            while ((len = in.read(buf)) > 0) { 
                out.write(buf, 0, len); 
            } 
            // Close the streams 
            out.close(); 
            in.close(); 
            status = true; 
        } catch (Exception e) { 
            System.out.println("Exception in copyFile:: "+e.getMessage()); 
            status = false; 
        } 
        System.out.println("copyFile Status:: "+status); 
        return status; 
    }
    private String getHtmlData(Context context, String data){ 
        String head = "<head><style>@font-face {font-family: 'aa';src: url('file://"+ context.getFilesDir().getAbsolutePath()+ "/aa.TTF');}body {font-family: 'aa';}</style></head>"; 
        String htmlData= "<html>"+head+"<body>"+data+"</body></html>" ; 
        return htmlData; 
     } 

    String DownloadHtml(String addr) {
        HttpGet httpget = new HttpGet(addr);
        DefaultHttpClient client = new DefaultHttpClient();
        StringBuilder html = new StringBuilder();
        try {
            HttpResponse response = client.execute(httpget);
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    response.getEntity().getContent()));
            for (;;) {
                String line = br.readLine();
                if (line == null)
                    break;
                html.append(line + '\n');
            }
            br.close();
        } catch (Exception e) {
            ;
        }
        return html.toString();
    }
}

Ответы [ 2 ]

2 голосов
/ 16 декабря 2011

Без внесения изменений в содержимое веб-страницы вы не можете изменить шрифт.

WebView - это в основном представление для отображения веб-страниц Эти веб-страницы могут быть статическими (например, html) или динамическими. Но это не меняет внешний вид веб-страницы. поэтому он будет отображать текст точно так же, как и на веб-странице. Если вам нужно изменить шрифт, то вы должны изменить его на веб-странице (может быть в HTML).

Пожалуйста, посмотрите на Что такое WebVIew

0 голосов
/ 23 апреля 2013
// Put your font file in assets

private WebView wv;

wv = (WebView)findViewById(R.id.wv);
wv.setBackgroundColor(Color.BLACK);

String my_text=getData("I am android developer");

wv.loadDataWithBaseURL("file:///android_asset//Gill Sans MT.ttf", t, "text/html", "UTF-8", "null" );

private String getData(String s){

    String htmlData="<font color='white'>" + s + "</font>";
     String PAGE_HTML =
            "<html>\n" +
            "  <style type=\"text/css\"> \n" + 
            "   @font-face { \n" + 
            "       font-family: MyFont; \n" + 
            "       src: url(\"file:///android_asset/Gill Sans MT.ttf\") \n" + 
            "   } \n" + 
            "   body { \n" + 
            "       font-family: MyFont; \n" + 
            "       font-size: medium; \n" + 
            "       text-align: justify; \n" + 
            "   } \n" + 
            "  </style> \n" + 
            "  <body>\n" + 
            "    "+htmlData+"<br>\n" + 

            "  </body>\n" + 
            "</html>";

    return PAGE_HTML;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...