Java Android PDF(位图)未完全显示



我正试图在我的应用程序中显示PDF文件,但当我显示该文件时,它并没有完全显示,它只覆盖了大约1/4的屏幕。

这是我的代码:

public void render() {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
final ImageView pdfView = (ImageView) getActivity().findViewById(R.id.pdfView);
pdfView.post(new Runnable() {
@Override
public void run() {
try {
int width = pdfView.getWidth();
int height = pdfView.getHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);
System.out.printf("Filename: " + pdfFile.getName());
PdfRenderer renderer = new PdfRenderer(ParcelFileDescriptor.open(pdfFile, ParcelFileDescriptor.MODE_READ_ONLY));
if (currentPage < 0) {
currentPage = 0;
} else if (currentPage > renderer.getPageCount()) {
currentPage = renderer.getPageCount() - 1;
}
Matrix m = pdfView.getImageMatrix();
Rect rect = new Rect(0, 0, width, height);
renderer.openPage(currentPage).render(bitmap, rect, m, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
pdfView.setImageMatrix(m);
pdfView.setImageBitmap(bitmap);
pdfView.invalidate();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}

当我记录宽度和高度时,我得到的结果是:1440/1944

尝试将其设置为页面宽度和高度。使用以下代码并检查

PdfRenderer renderer = new PdfRenderer(ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY));
PdfRenderer.Page page = renderer.openPage(0);
int pageWidth = page.getWidth();
int pageHeight = page.getHeight();
float scale = Math.min((float) REQ_WIDTH / pageWidth, (float) REQ_HEIGHT / pageHeight);
Bitmap bitmap = Bitmap.createBitmap((int) (pageWidth * scale), (int) (pageHeight * scale), Bitmap.Config.ARGB_8888);
page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
imageView.setImageBitmap(bitmap);

最新更新