Android Studio 如何使用按钮单击或音量按钮自动滚动pdfView

mf98qq94  于 2022-11-16  发布在  Android
关注(0)|答案(1)|浏览(233)

我正在使用barteksc pdf查看器库加载pdf在我的应用程序。

pdfView = findViewById(R.id.pdfView);
            pdfView.fromAsset(getResources().getString(R.string.pdfname))
                    .enableDoubletap(true)
                    .enableSwipe(true)
                    .defaultPage(pageNumber)
                    .onPageChange(mainreading.this)
                    .pageFitPolicy(FitPolicy.WIDTH)
                    .pageFling(true)
                    .linkHandler(null)
                    .enableAnnotationRendering(true)
                    .swipeHorizontal(true)
                    .scrollHandle(new DefaultScrollHandlenew(mainreading.this))
                    .enableAntialiasing(true)
                    .load();
        }

我想让pdf在用户点击音量上下按钮时自动开始滚动。我尝试了下面的代码,同时用handler.performClick()将其 Package 在处理程序中;但在上下滚动时显示空白屏幕。

scrollbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            pdfView.scrollTo(0, pdfView.getScrollY() + 24);
        }
    });

示例:https://play.google.com/store/apps/details?id=com.emptysheet.pdfreader_autoscroll&hl=en&gl=US
我想做这样的东西。有人能帮忙吗?
也试过这个。但是在一些卷轴之后它显示空白页。

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    int action = event.getAction();
    int keyCode = event.getKeyCode();
    switch (keyCode) {
        case KeyEvent.KEYCODE_VOLUME_UP:
            if (action == KeyEvent.ACTION_DOWN) {
                pdfView.scrollTo(0, pdfView.getScrollY() -24);
            }
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            if (action == KeyEvent.ACTION_DOWN) {
                pdfView.scrollTo(0, pdfView.getScrollY() + 24);
            }
            return true;
        default:
            return super.dispatchKeyEvent(event);
    }
}
vzgqcmou

vzgqcmou1#

你可以简单地使用github的这个PDF查看器。它基于相同的“barsteksc”PDF查看器,具有跳转到任何页面的功能。
它是MagicalPdfViewer,你可以使用'jumpTo(pageNo)'方法直接跳转到指定的页面。它还提供了一个选项,让你用同样的方法动画到指定的页面,只要传递'true'作为第二个参数。
此外,如果您传递了像'-1'和'bigger than pageNo'这样的值,它将分别自动滚动到第0页和最后一页。
给予一试&如果你得到了你想要的,让我知道。

相关问题