PDFrenderer将缩放比例设置为屏幕

七叶树

林使用下面的代码来呈现pdf。这是一个try / catch,效果很好,显示了pdf。

问题是pdf文件对于屏幕太大。有人知道如何将其缩小以适应吗?

谢谢你。

        imageView = (ImageView) findViewById(R.id.imagePDF);

        int REQ_WIDTH = imageView.getWidth();
        int REQ_HEIGHT = imageView.getHeight();

        Display display = getWindowManager().getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        int width12 = size.x;
        int height12 = size.y;

        Bitmap bitmap = Bitmap.createBitmap(width12, height12, Bitmap.Config.ARGB_4444);

        File file = new File("/sdcard/Download/sample.pdf");


        PdfRenderer renderer = new PdfRenderer(ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY));

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

        int pages;

        pages = renderer.getPageCount();

        Matrix m = imageView.getImageMatrix();

        Rect rect = new Rect(0, 0, width12, height12);

        renderer.openPage(currentPage).render(bitmap, rect, m, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);

        imageView.setImageMatrix(m);
        imageView.setImageBitmap(bitmap);
        imageView.invalidate();
弗莱彻·约翰斯(Fletcher Johns)

您需要创建一个与页面的长宽比匹配的位图。最好也匹配ImageView的尺寸:

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

编辑:

为了避免ImageView的width和height为0,一种解决方案是发布包含代码的Runnable:

imageView.post(new Runnable() {
    public void run() {
        // The above code goes here
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将缩放比例设置为分隔宽度

来自分类Dev

将缩放比例设置为分隔宽度

来自分类Dev

将d3缩放比例范围设置为正值

来自分类Dev

将d3缩放比例范围设置为正值

来自分类Dev

Android如何将视图的宽度设置为屏幕宽度的一定比例?

来自分类Dev

有没有一种方法可以将任何网页的Chrome缩放比例设置为200%?

来自分类Dev

将Subview的宽度比例设置为Superview的

来自分类Dev

将按钮定位在Scrollview屏幕的底部,并设置比例宽度

来自分类Dev

将MKMapView缩放级别设置为局部

来自分类Dev

将MKMapView缩放级别设置为局部

来自分类Dev

如何防止图像缩放到屏幕缩放比例?

来自分类Dev

如何将imageview比例类型设置为topCrop

来自分类Dev

将宽度/高度设置为xaml成比例吗?

来自分类Dev

将宽度/高度设置为xaml成比例吗?

来自分类Dev

vb.net将图表的比例设置为最大

来自分类Dev

使用xrandr设置HiDPI缩放比例后,Ubuntu 18.04鼠标指针在一个屏幕上闪烁并消失

来自分类Dev

CPU频率缩放比例为12.04?

来自分类Dev

GNUplot自动缩放将xrange设置为yrange

来自分类Dev

使用 xrandr 将监视器缩放设置为 200%

来自分类Dev

为什么我的屏幕比例为空?

来自分类Dev

jQuery缩放效果,背景位置更改时,缩放比例为1.1,然后缩放为1

来自分类Dev

使用CSS将CSS属性设置为屏幕宽度

来自分类Dev

如何将精灵的位置设置为屏幕的中心

来自分类Dev

将div的高度设置为屏幕高度,但随内容扩展

来自分类Dev

将场景框设置为iPhone屏幕的大小

来自分类Dev

将Openbox设置为在QHD屏幕上可读吗?

来自分类Dev

如何将桌子的高度设置为屏幕的大小?

来自分类Dev

如何将精灵的位置设置为屏幕的中心

来自分类Dev

将音频播放器的宽度设置为屏幕宽度

Related 相关文章

  1. 1

    将缩放比例设置为分隔宽度

  2. 2

    将缩放比例设置为分隔宽度

  3. 3

    将d3缩放比例范围设置为正值

  4. 4

    将d3缩放比例范围设置为正值

  5. 5

    Android如何将视图的宽度设置为屏幕宽度的一定比例?

  6. 6

    有没有一种方法可以将任何网页的Chrome缩放比例设置为200%?

  7. 7

    将Subview的宽度比例设置为Superview的

  8. 8

    将按钮定位在Scrollview屏幕的底部,并设置比例宽度

  9. 9

    将MKMapView缩放级别设置为局部

  10. 10

    将MKMapView缩放级别设置为局部

  11. 11

    如何防止图像缩放到屏幕缩放比例?

  12. 12

    如何将imageview比例类型设置为topCrop

  13. 13

    将宽度/高度设置为xaml成比例吗?

  14. 14

    将宽度/高度设置为xaml成比例吗?

  15. 15

    vb.net将图表的比例设置为最大

  16. 16

    使用xrandr设置HiDPI缩放比例后,Ubuntu 18.04鼠标指针在一个屏幕上闪烁并消失

  17. 17

    CPU频率缩放比例为12.04?

  18. 18

    GNUplot自动缩放将xrange设置为yrange

  19. 19

    使用 xrandr 将监视器缩放设置为 200%

  20. 20

    为什么我的屏幕比例为空?

  21. 21

    jQuery缩放效果,背景位置更改时,缩放比例为1.1,然后缩放为1

  22. 22

    使用CSS将CSS属性设置为屏幕宽度

  23. 23

    如何将精灵的位置设置为屏幕的中心

  24. 24

    将div的高度设置为屏幕高度,但随内容扩展

  25. 25

    将场景框设置为iPhone屏幕的大小

  26. 26

    将Openbox设置为在QHD屏幕上可读吗?

  27. 27

    如何将桌子的高度设置为屏幕的大小?

  28. 28

    如何将精灵的位置设置为屏幕的中心

  29. 29

    将音频播放器的宽度设置为屏幕宽度

热门标签

归档