Esempio di codice per implementare un lettore PDF

Voglio implementare un lettore PDF nell'applicazione che sto facendo, ho trovato diverse API, ma nessuna di esse era open source.

Qualcuno di voi conosce una buona alternativa gratuita?

  • Come creare un elenco a discesa?
  • Imposta la posizione assoluta di una vista
  • L'arresto di generazione di token Google Google Cloud Messaging (GCM) dopo l'aggiornamento di Google Play Services relativo a Firebase
  • Ottieni la dimensione di un text in TextView
  • Conversione di file: // schema al contenuto: // schema
  • Aggiorna una pagina in ionic2

  • Un leggero adattamento della soluzione di Dipak Keshariya realizzata dall'OP

    Prima class

    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(); } } } 

    Classe Secod

     package android.pdf.reader; import net.sf.andpdf.pdfviewer.PdfViewerActivity; import android.os.Bundle; 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; } } 

    Grazie.

  • Come get la data presa e visualizzarla?
  • Esistono alternativi compatibili con Android in Proprietà Utils?
  • Come posso impostare la risorsa drawableRight tramite codice?
  • Memorizza 'CallLog.Calls' in un'altra tabella
  • Come aggiungere id a public.xml?
  • Come rendere trasparente la barra di navigazione
  • 3 Solutions collect form web for “Esempio di codice per implementare un lettore PDF”

    Utilizza il codice sotto per quello.

    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; } } 

    E ha dichiarato entrambe le attività nel tuo file manifesto.

    C'è un ottimo post su questo su SO . In particolare controlla la risposta fornita da Commons.Ware, risponde alla tua domanda.

    A seguito dei tuoi commenti ho aggiunto i collegamenti qui dal post SO di cui sopra (fonte di progetti non trovati):

    • Android-Pdf-Viewer-Library (ospitato presso Github)
    • APV (ospitato in codice Google, utilizza Mercurial)
    • Android PDF Viewer (ospitato in Sourceforge, utilizza SVN)

    Così "checkout" o clonare i repository nel tuo file system locale per sfogliare il codice. Come ho detto nel mio commento controlla la licenza di each libreria prima di andare avanti per vedere se quello che puoi e non puoi fare con il codice.

    Questo funziona per me.

    1) Aggiungere PdfViewer.jar nel path di creazione del progetto

    2) Copiare le seguenti risorse disegnabili da PdfViewer / res / drawable in YourProject / res / drawable left_arrow.png right_arrow.png zoom_in.png zoom_out.png

    3) Copiare le seguenti risorse di layout da PdfViewer / res / layout in YourProject / res / layout dialog_pagenumber.xml pdf_file_password.xml

    4) Deriva l'attività PDF da net.sf.andpdf.pdfviewer.PdfViewerActivity

    5) Utilizzo dei disegni e dei layout predefiniti:

     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; } enter code here 

    6) Invocare la tua PdfViewActivity derivata con il seguente codice:

     Intent intent = new Intent(this, YourPdfViewerActivity.class); intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, "PATH TO PDF GOES HERE"); startActivity(intent); 

    E puoi scaricare il codice sorgente da questo link. LINK

    Spero che questo ti aiuti 🙂

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.