AndroidPdfViewer плохо отображает при увеличении

Я использую AndroidPdfViewer в своем приложении. Он прекрасно работает с жестами, например, проведением в режиме масштабирования. Однако использование перелистывания не всегда возможно, например, при использовании средства просмотра в устройстве киоска. Итак, я определяю направления клавиатуры DPAD и затем перемещаю страницу, вызывая pdfView.scrollTo(x+xstep,y+ystep), Проблема в том, что страница отображается частично в режиме масштабирования, начальная видимая часть в порядке, но при прокрутке вниз все линии размыты. Код следует:

//Load pdf
    public void onLoadPdf(File file) {
        pdfView.fromFile(file)
                .enableSwipe(true)
                .enableDoubletap(true)
                .defaultPage(0)
                .enableAnnotationRendering(false)
                .scrollHandle(null)
                .enableAntialiasing(true)
                .onTap(new OnTapListener() {
                    @Override
                    public boolean onTap(MotionEvent e) {
                        return false;
                    }
                })
                .onRender(new OnRenderListener() {
                    @Override
                    public void onInitiallyRendered(int nbPages) {
                        pdfView.enableAntialiasing(true);
                    }
                })
                .onLoad(new OnLoadCompleteListener() {


                    @Override
                    public void loadComplete(int nbPages) {
                            pdfView.setMinZoom(0.2f);
                            pdfView.setMidZoom(0.5f);
                            pdfView.setMaxZoom(2f);
                            pdfView.resetZoom();
                            pdfView.zoomTo(zoom = 0.4f);

                    }
                })
                .onPageChange(new OnPageChangeListener() {
                    @Override
                    public void onPageChanged(int page, int pageCount) {

                    }
                })

                .load();
    }


//Handle DPAD key strokes
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        switch (keyCode) {
            case KEYCODE_DPAD_DOWN:
                mIndex = pdfView.getCurrentPage();
                pdfView.scrollTo(x, mY);
                mY += 50;
                pageNumber();
                pdfView.enableAntialiasing(true);
                pdfView.loadPages();
                if (mY > height) {
                    if (zoom >= 0.6 && zoom<0.8) {
                        height = pdfView.getHeight()+300;
                        mY = 0;
                        pdfView.jumpTo(mIndex + 1);
                        pageNumber();
                        pdfView.scrollTo(x, mY);}
                    else if (zoom>=0.8){
                        height = pdfView.getHeight()+600;
                        mY = 0;
                        pdfView.jumpTo(mIndex + 1);
                        pageNumber();
                        pdfView.scrollTo(x, mY);
                    }

                    else if (zoom<0.6){
                        height = pdfView.getHeight()-150;
                        mY = 0;
                        pdfView.jumpTo(mIndex + 1);
                        pageNumber();
                        pdfView.scrollTo(x, mY);
                    }
                }
                return true;
            case KEYCODE_DPAD_UP:
                mIndex = pdfView.getCurrentPage();
                pdfView.scrollTo(x, mY);
                mY -= 50;
                pageNumber();
                pdfView.enableAntialiasing(true);
                pdfView.loadPages();
                if (mY <= 0) {
                    height = pdfView.getHeight();
                    if (mIndex == 0) {
                        MyUtil.showToast(mContext, R.string.first_page);
                        mY = 0;
                    }
                    else if (zoom>0.7 ){
                        mY = height+500;
                        pageNumber();
                        pdfView.jumpTo(mIndex - 1);
                        pdfView.scrollTo(x, mY);

                    }
                    else {
                        mY = height;
                        pageNumber();
                        pdfView.jumpTo(mIndex - 1);
                        pdfView.scrollTo(x, mY);

                    }
                }


                return true;
        }
        return super.onKeyDown(keyCode, event);
    }

0 ответов

Другие вопросы по тегам