2016-11-28 2 views
1

私のアプリでPDFを表示するためにMuPDFライブラリを使用しています。 内部メモリまたは外部メモリに保存されたPDFを表示することはできますが、アプリケーションのassetsフォルダに保存されている場合は表示されません。 。 アプリのPDFで表示するには?アセットまたは生のフォルダからpdfを表示するには?

私はthatbweアプリ関連したフォルダ内のアプリのPDFファイルに私たちをコピーして、後でそれらを使用することができると言うのソリューション... を見てきましたが、私はそれを取得することはできません。..

ここのコードです -

は、
public class MainActivity extends Activity { 

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

     Button showPDFBtn = (Button)findViewById(R.id.btn_show_pdf); 
     showPDFBtn.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 

     Uri uri = Uri.parse("file:///android_asset/test.pdf"); 
     Intent intent = new Intent(MainActivity.this, MuPDFActivity.class); 
     intent.setAction(Intent.ACTION_VIEW); 
     intent.setData(uri); 
     startActivity(intent); 



}} 
); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 
} 
+1

これは、ファイルを内部ストレージにコピーして開くことができるということです。それをどうやって行うのか分かりませんか? –

+1

を参照してくださいhttp://stackoverflow.com/questions/6491210/how-to-open-a-pdf-stored-either-in-res-raw-or-assets-folder – sasikumar

+0

@VladMatvienkoいいえ、私はアンドロイドに新しいです私はそれをgrtできませんでした...あなたはコード例を与えることができますか? – DarShan

答えて

5

を含めるようにしてくださいコード

private void readAssetAndMakeCopy() 
    { 
     AssetManager assetManager = getAssets(); 

     InputStream in = null; 
     OutputStream out = null; 
     File file = new File(getFilesDir(), "git.pdf"); 
     try 
     { 
      in = assetManager.open("git.pdf"); 
      out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE); 

      copyFile(in, out); 
      in.close(); 
      in = null; 
      out.flush(); 
      out.close(); 
      out = null; 
     } catch (Exception e) 
     { 
      Log.e("tag", e.getMessage()); 
     } 

     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.setDataAndType(
       Uri.parse("file://" + getFilesDir() + "/git.pdf"), 
       "application/pdf"); 

     startActivity(intent); 
    } 

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

の下に試してみてください

マニフェスト

+0

助けてくれてありがとう! –

+0

plzは答えを受け取り、上のコードが助けになるならば助けてください –

+0

申し訳ありませんが男はupvoteを忘れました。質問は私のものではないので、私はこの答えを受け入れることができません。そのために残念 –

関連する問題