2016-11-08 31 views
1

我正在寻找一种方法来放大我的布局中的文字和图片。 根据一些问题,网络视图是一个简单的方法来做到这一点。过了一会儿,我发现网页流量验证码:是否可以使用web浏览器作为html阅读器(离线)?

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 

看来其工作对我来说很好,但我有一些严重的问题。

这里是我的问题:

  1. 是这条道路我使用的是所有其他Android设备的作品?
  2. 我不知道如何提取第一次运行到我正在使用的路径的HTML文件。
  3. 有无论如何加载资产的文件?
  4. 第一次运行时提取文件的源代码是什么?
  5. 我可以使用其他格式,如PDF或DOC而不是HTML?如果我不能在源代码中更改什么内容?

谢谢你们帮助我。我应该放弃还是继续这个想法?

回答

4

你可以只把文件放到你的资产文件夹中的源代码,然后做到这一点:

WebView webView = (WebView)findViewById(R.id.webView1); 
webview.loadUrl("file:///android_assets/file.html"); 

对于显示PDF:

由于API等级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(); 

此示例演示how to display PDF document on screen using the PdfRenderer introduced in Android 5.0 Lollipop.

对于旧的API,结账AndroidPdfViewer library,适用于API 11及更高版本:

pdfView.fromUri(Uri) 
or 
pdfView.fromFile(File) 
or 
pdfView.fromAsset(String) 
    .pages(0, 2, 1, 3, 3, 3) // all pages are displayed by default 
    .enableSwipe(true) 
    .swipeHorizontal(false) 
    .enableDoubletap(true) 
    .defaultPage(0) 
    .onDraw(onDrawListener) 
    .onLoad(onLoadCompleteListener) 
    .onPageChange(onPageChangeListener) 
    .onPageScroll(onPageScrollListener) 
    .onError(onErrorListener) 
    .enableAnnotationRendering(false) 
    .password(null) 
    .scrollHandle(null) 
    .load(); 
+0

我有一个完美的应用程序,完美的工作! – AxelH

+0

哦,所以从资产加载文件我应该添加(android_assets)而不是(资产)。右? –

+0

是的,它应该工作:) –

0

使用getExternalFilesDir(),而不是硬编码路径。

使用IDE将文件置于资产中。

然后在运行时将这些文件复制到getExternalFilesDir()。要做到这一点的代码已经在stackoverflow上发布了很多次。

由于WebView可以直接从资产加载它们,因此您可以将文件留在资产中。

+0

我是Android新手,你可以在代码中显示它吗? –

相关问题