2011-12-16 1 views
1

Я не знаю, как изменить шрифт для Webview.Веб-просмотр сменить шрифт? _android

Теперь загрузите стили 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

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

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

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

+0

Спасибо вас.Однако, мой клиент, используя Android нужно изменить font.Rather, чем веб-страницы с помощью Android Есть ли способ изменить? Пожалуйста, поймите, что мой английский плохой. Хорошего дня!! – user1101062

0
// 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; 

} 
Смежные вопросы