我正在开发一个Android应用程序,所有内容都需要在本地访问,即应用程序不需要互联网连接。 App只有静态内容。我已经开发了可以访问我在本地存储在assets文件夹中的html页面的应用程序。我只是想知道使用webview
进行文本格式化是一般的(一般)练习还是有其他方法可以在android中格式化文本?因为我知道文本格式在android中有点乏味。另外一件应用程序将仅使用马拉地语。所以请告诉我任何其他方式来格式化textview
,看起来不错。
以下是webview
public class AndroidHTMLActivity extends Activity {
WebView myBrowser;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myBrowser = (WebView)findViewById(R.id.mybrowser);
myBrowser.loadUrl("file:///android_asset/mypage.html");
}
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<WebView
android:id="@+id/mybrowser"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
答案 0 :(得分:2)
简短的回答是:它取决于:)
问自己以下问题:
现在解释:如果你想应用一个简单的格式(例如:粗体,斜体,某种颜色),TextView
是你的选择。它很简单,可以胜任。当您想要执行更复杂的格式设置(如段落,缩进等)时,问题就出现了。
您无法应对TextView
的某种情况是您的文字将要更改的时间。我的意思是以下 - 你有一个简单的文字,有两个段落。您可以毫不费力地使用TextViews
执行此操作 - 两个TextView
具有正确的布局,对吧?好的,但是如果您的文本是从互联网或数据库或外部文件加载并且更新版本包含三个段落会发生什么?现在你知道我的意思:)在这种情况下,最好使用```WebView``,因为数据本身就有格式。
WebView
是更好的方法的另一种情况是,当您想要显示由外部工具生成的一些富文本时。例如,如果您要在应用中显示doc
文件,则可以将其转换为html
(有一堆免费的在线工具可以执行此操作)然后您可以轻松地显示它使用WebView
保留所有格式,颜色,段落,图像,表格等。
结论:对于简单的情况,TextView
是首选方法,因为它简单,但对于更复杂的情况或当您的数据要更改其格式时,我建议使用WebView
希望这有用:)
答案 1 :(得分:1)
WebView内部为显示Html数据提供不同的功能。您也可以在WebView中使用JavaScript。
当你使用Html.fromHtml()时TextView,它只支持几个Html标签。所以我觉得使用WebView更好。
有关详细信息,请查看此链接
答案 2 :(得分:0)
TextView不支持缩进和对齐,因此如果需要,则必须使用WebView。如果你只需要一些简单的html格式,那么TextView会更快。