2014-10-26 50 views
-1

即时制作一个应用程序包含一些pdf文件,但我不知道我可以如何使用该应用程序 1-我应该在资源中复制我的PDF文件? (哪个文件夹?) 2-需要什么代码才能打开它? (哪些代码需要在onClick方法中编写?) 3-此过程有哪些类和方法是有用的?在应用程序中打开pdf文件

离开这个下面的代码(它们是身体误差忽略)

public void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.main);} 

回答

0

如果你想从网页视图中打开PDF,你可以使用下面的代码:

public class ActivityName extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    WebView mWebView=new WebView(MyPdfViewActivity.this); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.getSettings().setPluginsEnabled(true); 
    mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url="+LinkTo); 
    setContentView(mWebView); 
    } 
} 

如果您希望在本地打开PDF,您可以将其放置在res/raw文件夹或资产文件夹中(在以下示例中使用资产文件夹)。然后,你需要将文件在本地使用下面的代码:

private void copyAssets() { 
    AssetManager assetManager = getAssets(); 
    String[] files = null; 
    try { 
     files = assetManager.list(""); 
    } catch (IOException e) { 
     Log.e("tag", "Failed to get asset file list.", e); 
    } 
    for(String filename : files) { 
     InputStream in = null; 
     OutputStream out = null; 
     try { 
      in = assetManager.open(filename); 
      File outFile = new File(getExternalFilesDir(null), filename); 
      out = new FileOutputStream(outFile); 
      copyFile(in, out); 
      in.close(); 
      in = null; 
      out.flush(); 
      out.close(); 
      out = null; 
     } catch(IOException e) { 
      Log.e("tag", "Failed to copy asset file: " + filename, e); 
     }  
    } 
} 
private void copyFile(InputStream in, OutputStream out) throws IOException { 
    byte[] buffer = new byte[1024]; 
    int read; 
    while((read = in.read(buffer)) != -1){ 
     out.write(buffer, 0, read); 
    } 
} 

然后你可以用下面的代码来访问PDF,再次假设用户已经安装了PDF浏览器:

public class OpenPdf extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Button button = (Button) findViewById(R.id.OpenPdfButton); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       File file = new File("/sdcard/example.pdf"); 

       if (file.exists()) { 
        Uri path = Uri.fromFile(file); 
        Intent intent = new Intent(Intent.ACTION_VIEW); 
        intent.setDataAndType(path, "application/pdf"); 
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

        try { 
         startActivity(intent); 
        } 
        catch (ActivityNotFoundException e) { 
         Toast.makeText(OpenPdf.this, 
          "No Application Available to View PDF", 
          Toast.LENGTH_SHORT).show(); 
        } 
       } 
      } 
     }); 
    } 
} 

如果你想从你的应用程序打开它,你可以尝试this

相关问题