2016-12-24 111 views
1

我想证明TextView的正确性,但我找不到任何方法在TextView上这样做,所以我创建了WebView如何在Android上的WebView上正确对齐文本?

设置文本上我WebView的代码如下:

WebView webview = (WebView) view.findViewById(R.id.webview); 
webview.loadData(getString(R.string.webview), "text/html; charset=utf-8", "utf-8"); 
webview.setBackgroundColor(Color.TRANSPARENT); 

,而且运作良好,文本正在被显示合理的(因为我已经创建了一个body标签与style="text-align:justify;)。

问题是,因为我已将文本加载到WebView中,所以它花费了几秒钟时间对文本进行收费。因此,在文本出现之前就会显示其余的布局,从而产生奇怪的视觉效果。

我试图等到WebView完全加载(How to listen for a WebView finishing loading a URL?),但文本从不显示。下面是我得到的时刻代码:

webview.setWebViewClient(new WebViewClient() { 

    public void onPageFinished(WebView view, String url) { 
     webview.loadData(getString(R.string.webview), "text/html; charset=utf-8", "utf-8"); 
     webview.setBackgroundColor(Color.TRANSPARENT); 
    } 
}); 

所以,我怎么可以显示在同一时间布局的其余部分对齐文本?

在此先感谢!

+1

https://github.com/programingjd/justified – CommonsWare

+0

重复的问题:http://stackoverflow.com/questions/1292575/android-textview-justify-text – tahaDev

+0

@tahaDev我不认为它是重复的那个问题。我知道如何为文字辩护。我正在问一个具体的问题。 –

回答

0

这是图片:enter image description here

这是我在我的项目中使用 它并不需要这么多的加载

void initVebView(WebView wvContent_Detail, String body) { 
     String HTML1 = "<html><head><style type=\"text/css\">@font-face  {font-family: MyFont;src: url(\"file:///android_asset/%s\")}body {font-family: MyFont;font-size: medium;text-align: justify; line-height: %spx;}</style></head><body dir='rtl'>"; 
    String HTML2 = "</body></html>"; 
    String HTML3 = "<span style=\"font-weight:bold\">%s<br/><br/>%s</span>"; 

    String HTML4 = "<style>img{display: inline;height: auto;max-width: 100%;</style>"; 

    String str = String.format(HTML1, "IRANSansMobile_UltraLight.ttf", 25); 


    String content = body.replace("text-align:", ""); 
    content = content.replace("font-family:", ""); 
    content = content.replace("line-height:", ""); 
    content = content.replace("dir=", ""); 
    content = content.replace("width=", "width=\"100%;\""); 

    String myHtmlString = str + content + HTML2; 

    wvContent_Detail.loadDataWithBaseURL(null, HTML4 + myHtmlString, "text/html", "UTF-8", null); 

    WebSettings webSettings = wvContent_Detail.getSettings(); 
    webSettings.setDefaultFontSize(20); 
    webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); 
} 

这是XML代码:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    tools:context="ir.tenthwindow.BaseModule.ui.FragmentVideo"> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <WebView 
      android:id="@+id/webview_product_details" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" /> 
    </ScrollView> 
    </FrameLayout> 

您可以改用您的字体。 希望这有助于。