2016-12-24 60 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> 

您可以改用您的字體。 希望這有助於。