2015-05-29 93 views
0

我已閱讀並嘗試過無數版本的此問題無濟於事。我已經看到了答案,早在2011年和2014年中期。不幸的是,許多部分答案和解釋不清的建議造成了更多的問題而不是答案。我在iTunes App Store中有一個Apple應用程序,可執行我試圖使用此Android應用程序執行的所有操作。在Apple App世界中,查看PDF文件相對容易,但我在Android上完成它非常困難。我承認我創作Android應用的經驗非常有限。在Android應用程序中加載和查看本地(捆綁)pdf

問題是,我有一個Android應用程序,主要活動有一個ListView,列出了大約35個pdf格式的圖表的標題。其中每一個都是可點擊的,以便在全屏活動(查看)中查看。每張PDF格式都是半頁寬度,並且從1/2頁到兩頁的任何長度。所以新的活動(pdf視圖)將需要滾動。由於這是一款適用於手機或平板電腦的應用程序,因此新的活動(pdf視圖)需要可縮放。用戶完成對PDF的查看後,他們需要一個選項返回到主要活動。用戶然後可以選擇另一個圖表進行查看。

我已經完成的事情是: - 對主要活動 圖表標題的ListView控件 - 啓用用於偵聽的ListView 每個條目 - 新活動(PDF瀏覽)訪問 - 使用putExtras - getExtras的變量傳遞,正在

某些代碼(從主activity.java):

@Override 
    public void onClick(View v) { 

     String scroll_page = new String("CommonVehicleCodeViolations.pdf"); 

     Intent intent = new Intent(this, scroll_view.class); 
     intent.putExtra("extra_scroll_page", scroll_page); 
     startActivity(intent); 

    } 

圖表標題是硬編碼用於測試目的。現在,來自新的活動的一些代碼(PDF瀏覽)「scroll_view.java」:

public class scroll_view extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_scroll_view); 

     Bundle extras = getIntent().getExtras(); 
     String scroll_page = null; 
     if (extras != null) { 
      scroll_page = extras.getString("extra_scroll_page"); 
     } 

     int currentPage = 1; 
     ImageView imageView = (ImageView) findViewById(R.id.imageView); 
     Bitmap bitmap = Bitmap.createBitmap(500,500, Bitmap.Config.ARGB_4444); 

     try { 
      File file = new File(getFilesDir(), scroll_page); 
      PdfRenderer renderer = new PdfRenderer(ParcelFileDescriptor.open(file,ParcelFileDescriptor.MODE_READ_ONLY)); 

      if(currentPage < 0) { 
       currentPage = 0; 
      } else if (currentPage > renderer.getPageCount()) { 
       currentPage = renderer.getPageCount() - 1; 
      } 

      renderer.openPage(currentPage).render(bitmap, new Rect(0, 0, 500, 500), new Matrix(),PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); 
      imageView.setImageBitmap(bitmap); 
      imageView.invalidate(); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

這是使用很多的一個嘗試已經發布使用PdfRenderer其參考答案。我從這個例子中得到的是新的活動(pdf視圖)黑屏。我希望2015年會帶來新的答案。請幫忙。

+0

Stack Overflow是編程問題。你的問題是什麼? – CommonsWare

+0

如果您將閱讀帖子的標題,我無法獲得pdf加載並在scroll_view活動中查看。我分享的例子並沒有達到這個目的。我不知道爲什麼。 –

+0

我沒看過帖子的標題。帖子的標題也不是問題。除此之外,您是否從異常處理程序中獲取LogCat中的任何堆棧跟蹤? – CommonsWare

回答

1

爲什麼不嘗試使用意圖,並​​讓系統顯示您兼容的應用程序的列表:

File file = new File(getFilesDir(), scroll_page); 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(file), "application/pdf"); 
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
startActivity(intent); 
+0

克里斯蒂,我試圖保持應用程序中的所有功能,因爲平板電腦沒有活躍的互聯網連接。這個應用程序的用戶是執法人員誰開車去完成他們的工作。感謝您的回覆。 –

+1

您無需使用互聯網訪問平板電腦上已安裝的應用程序。 –

相關問題