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