Android 是否可以将web视图用作html阅读器(脱机)?

Android 是否可以将web视图用作html阅读器(脱机)?,android,html,webview,offline,offline-web-app,Android,Html,Webview,Offline,Offline Web App,我正在寻找一种在我的版面中同时缩放文本和图片的方法。 根据一些问题,web视图是一种简单的方法。过了一会儿,我找到了webview的以下代码: import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; public class WebViewActivity extends Activity { private WebView webView; public void onCr

我正在寻找一种在我的版面中同时缩放文本和图片的方法。 根据一些问题,web视图是一种简单的方法。过了一会儿,我找到了webview的以下代码:

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class WebViewActivity extends Activity {

private WebView webView;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.webview);

    webView = (WebView) findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl("http://www.google.com");

}

}
我尝试使用file:///而不是http:// 所以我用了这个路径:

file:///sdcard/Android/data/[My App Package Name]/about.html
这对我来说似乎很好,但我有一些严重的问题

以下是我的问题:

我使用的路径是否适用于所有其他android设备? 我不知道如何提取html文件,以便第一次运行到我正在使用的路径。 是否仍然可以从资源加载文件? 第一次运行时提取文件的源代码是什么? 我可以使用其他格式,如pdf或doc而不是html吗?如果我不能,我应该在源代码中更改什么?
谢谢大家帮我。我应该放弃还是继续这个想法?

您可以将文件放入源代码中的资产文件夹,然后执行以下操作:

WebView webView = (WebView)findViewById(R.id.webView1);
webview.loadUrl("file:///android_assets/file.html");
用于显示PDF:

由于API Level 21棒棒糖Android提供了PdfRenderer类:

// create a new renderer
PdfRenderer renderer = new PdfRenderer(getSeekableFileDescriptor());

// let us just render all pages
final int pageCount = renderer.getPageCount();
for (int i = 0; i < pageCount; i++) {
  Page page = renderer.openPage(i);

  // say we render for showing on the screen
  page.render(mBitmap, null, null, Page.RENDER_MODE_FOR_DISPLAY);

  // do stuff with the bitmap

  // close the page
  page.close();
}

// close the renderer
renderer.close();

您可以将文件放入源代码中的资产文件夹,然后执行以下操作:

WebView webView = (WebView)findViewById(R.id.webView1);
webview.loadUrl("file:///android_assets/file.html");
用于显示PDF:

由于API Level 21棒棒糖Android提供了PdfRenderer类:

// create a new renderer
PdfRenderer renderer = new PdfRenderer(getSeekableFileDescriptor());

// let us just render all pages
final int pageCount = renderer.getPageCount();
for (int i = 0; i < pageCount; i++) {
  Page page = renderer.openPage(i);

  // say we render for showing on the screen
  page.render(mBitmap, null, null, Page.RENDER_MODE_FOR_DISPLAY);

  // do stuff with the bitmap

  // close the page
  page.close();
}

// close the renderer
renderer.close();
使用getExternalFilesDir而不是硬编码路径

使用IDE将文件放入资源中

然后在运行时将这些文件复制到getExternalFilesDir。执行此操作的代码已在stackoverflow上发布多次

您也可以将文件保留在资产中,因为WebView可以直接从资产加载它们。

使用getExternalFilesDir而不是硬编码路径

使用IDE将文件放入资源中

然后在运行时将这些文件复制到getExternalFilesDir。执行此操作的代码已在stackoverflow上发布多次


您也可以将文件保留在资产中,因为WebView可以直接从资产中加载它们。

噢,所以要从资产中加载文件,我应该添加android_资产,而不是资产。对吗?感谢您解决了我的第三个问题。我期待着解决我的第五个问题。我应该添加android_资产。不,那不行。再看看;-。它需要很高的api,所以蜂巢用户无法运行应用程序,不是吗?哦,所以从资产加载文件,我应该添加android_资产,而不是资产。对吗?谢谢你解决了我的第三个问题。我期待着解决我的第五个问题。我应该添加android_资产。不,那不行。再看看;-。它需要很高的api,所以蜂巢用户无法运行应用程序,不是吗?