为了账号安全,请及时绑定邮箱和手机立即绑定

实现PDF阅读器的代码示例

实现PDF阅读器的代码示例

四季花海 2019-09-21 15:05:42
我想在正在执行的应用程序中实现PDF阅读器,我发现了几个API,但是它们都不是开源的。你们中有人知道免费的替代品吗?OP 对Dipak Keshariya解决方案的略微调整头等舱package android.pdf.reader;import java.io.File;import java.io.FilenameFilter;import net.sf.andpdf.pdfviewer.PdfViewerActivity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ListView;public class First extends Activity {    @Override    public void onCreate(Bundle savedInstanceState)     {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        File images = Environment.getExternalStorageDirectory();        File[] imagelist = images.listFiles(new FilenameFilter()        {                  public boolean accept(File dir, String name)                  {                          return ((name.endsWith(".pdf")));                }          });         String[] 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);            Object[] imagelist;            String path = ((File) 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();        }    }}
查看完整描述

2 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

为此使用下面的代码。


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 void onCreate(Bundle savedInstanceState) {

        // TODO Auto-generated method stub

        super.onCreate(savedInstanceState);

    }


    public int getPreviousPageImageResource() {

        return R.drawable.left_arrow;

    }


    public int getNextPageImageResource() {

        return R.drawable.right_arrow;

    }


    public int getZoomInImageResource() {

        return R.drawable.zoom_in;

    }


    public int getZoomOutImageResource() {

        return R.drawable.zoom_out;

    }


    public int getPdfPasswordLayoutResource() {

        return R.layout.pdf_file_password;

    }


    public int getPdfPageNumberResource() {

        return R.layout.dialog_pagenumber;

    }


    public int getPdfPasswordEditField() {

        return R.id.etPassword;

    }


    public int getPdfPasswordOkButton() {

        return R.id.btOK;

    }


    public int getPdfPasswordExitButton() {

        return R.id.btExit;

    }


    public int getPdfPageNumberEditField() {

        return R.id.pagenum_edit;

    }

}

并将这两个活动声明到清单文件中。


查看完整回答
反对 回复 2019-09-21
  • 2 回答
  • 0 关注
  • 457 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信