سلام.
میخام همونطور که یک فایل html رو میزاریم تو پوشه assets و توی یک webviewer نشونش میدیم.همین کارو برای یه فایل pdf انجام بدم.لطفا راهنمایی کنید.
Printable View
سلام.
میخام همونطور که یک فایل html رو میزاریم تو پوشه assets و توی یک webviewer نشونش میدیم.همین کارو برای یه فایل pdf انجام بدم.لطفا راهنمایی کنید.
با کد زیر میتونی این کارو انجام بدی
اما باید نرم افزار adode reader روی گوشی نصب باشه چون PDF ها با نرم افزار adode reader نمایش داده میشوند
package ir.alipoor.ir;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.res.AssetManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AssetManager assetManager = getAssets();
InputStream in = null;
OutputStream out = null;
File file = new File(getFilesDir(), "a1.pdf");
try
{
in = assetManager.open("a1.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)
{
Toast.makeText(getApplicationContext(), "نرم افزار adode reader نصب نیست ", 2000).show();
finish();
}
try{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(
Uri.parse("file://" + getFilesDir() + "/a1.pdf"),
"application/pdf");
startActivity(intent);
finish();
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(), "نرم افزار adode reader نصب نیست ", 2000).show();
finish();
}
}
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);
}
}
}
نمیشه در قالب برنامه خودمون این کار و کنیم که نیاز به برنامه خارج از برنامه خودمون نباشه؟
تاپیک تکراریه.توی انجمن سرچ کنید قبلا بحث شده