2012-07-16 94 views
2

在这里我需要在我的app.i中使用Pdf-Viewer,我把很多API作为参考,但仍然在查看SDCARD的PDF文件。在这里我的代码Android代码来实现PDF查看器

`First.java

public class First extends ListActivity { 
String[] pdflist; 
File[] imagelist; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.main); 

    File images = Environment.getExternalStorageDirectory(); 
    imagelist = images.listFiles(new FilenameFilter() { 
     public boolean accept(File dir, String name) { 
      return ((name.endsWith(".pdf"))); 
     } 
    }); 
    pdflist = new String[imagelist.length]; 
    for (int i = 0; i < imagelist.length; i++) { 
     pdflist[i] = imagelist[i].getName(); 
    } 
    this.setListAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, pdflist)); 
} 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
    String path = imagelist[(int) id].getAbsolutePath(); 
    openPdfIntent(path); 
} 
private void openPdfIntent(String path) { 
    try { 
     final Intent intent = new Intent(First.this, Second.class); 
     intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, path); 
     startActivity(intent); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
}} 

Second.java

public class Second extends PdfViewerActivity { 

@Override 
public int getPreviousPageImageResource() { 
    // TODO Auto-generated method stub 
    return R.drawable.left_arrow; 
} 

@Override 
public int getNextPageImageResource() { 
    // TODO Auto-generated method stub 
    return R.drawable.right_arrow; 
} 

@Override 
public int getZoomInImageResource() { 
    // TODO Auto-generated method stub 
    return R.drawable.zoom_in; 
} 

@Override 
public int getZoomOutImageResource() { 
    // TODO Auto-generated method stub 
    return R.drawable.zoom_out; 
} 

@Override 
public int getPdfPasswordLayoutResource() { 
    // TODO Auto-generated method stub 
    return R.layout.pdf_file_password; 
    } 

@Override 
public int getPdfPageNumberResource() { 
    // TODO Auto-generated method stub 
    return R.layout.dialog_pagenumber; 
} 

@Override 
public int getPdfPasswordEditField() { 
    // TODO Auto-generated method stub 
    return R.id.etPassword; 
} 

@Override 
public int getPdfPasswordOkButton() { 
    // TODO Auto-generated method stub 
    return R.id.btOK; 
} 

@Override 
public int getPdfPasswordExitButton() { 
    // TODO Auto-generated method stub 
    return R.id.btExit; 
} 

@Override 
public int getPdfPageNumberEditField() { 
    // TODO Auto-generated method stub 
    return R.id.pagenum_edit; 
}} 

,我用Android-Pdf-Reader-Library project.in我的模拟器对话为 “加载PDF文件” 正在出现点击Pdf文件后。你能告诉我如何通过用手指滑动来更改PDF页面吗?

+0

请看我的答案。 – 2012-07-16 08:50:26

+0

您是否使用此库找到了卷页/翻页的解决方案? – 2015-06-13 07:13:53

回答

2

使用下面的链接下载PDFViewer.jar文件。

http://tamilsikk.net/softwares/load/file.php?p=1&file=load/Softwares/Java%20Apps/Media%20Editing/Pdf_Viewer_.jar&sort=1

,看看下面链接了解更多参考。

PDF Viewer

+0

其工作完美。谢谢@dipak。我的两天斗争已经结束了。是否有任何选择通过用手指滑动PDF页面来滑动PDF页面,而不是点击按钮事件? – 2012-07-16 10:27:05

+0

@ Michael-aes对不起,我不知道用手指滑动滑动PDF页面。 – 2012-07-16 11:14:45

+0

反正谢谢。猜猜可以使用手势检测器来实现Finger-Slide – 2012-07-16 11:44:55

1

你可以在谷歌文档

WebView webviewer = new WebView(this); 
    webviewer.getSettings().setJavaScriptEnabled(true); 
    webviewer.getSettings().setPluginsEnabled(true); 
    setContentView(webviewer); 

    webviewer.loadUrl("http://docs.google.com/gview?embedded=true&url=PDF_url/fileName.pdf"); 
    setContentView(webviewer); 

打开PDF格式的应用,如快速PDF或Adobe PDF阅读器中打开PDF:

Uri path = Uri.fromFile(file); 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setDataAndType(path, "application/pdf"); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
+0

感谢您的即时答复。在我的应用程序中,我不需要在WebView bro中打开PDF。帮助我在上面的代码中打开PDF。 – 2012-07-16 08:23:32

+0

如果你不想在webview上打开,只需使用我给你的第二个代码的读者打开。 – Furqi 2012-07-16 09:30:18

+0

我也试过了。我想在Uri路径中给出一个参数(文件)作为什么shuld? – 2012-07-16 10:34:51