Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问如果直接设置setScale比例大小 #13

Open
zz5360 opened this issue Jun 15, 2020 · 16 comments
Open

请问如果直接设置setScale比例大小 #13

zz5360 opened this issue Jun 15, 2020 · 16 comments

Comments

@zz5360
Copy link

zz5360 commented Jun 15, 2020

muPDFReaderView.setScaleX(2.5f);
muPDFReaderView.setScaleY(1f);
我设置这两个属性如果横批太大了有些看不到

@keaitao0321
Copy link

keaitao0321 commented Jul 6, 2020

你也遇到了横竖屏切换的问题吗?pdf文件竖屏的时候能填充满屏幕,横屏的时候两边有很大的间隙(空白)

@zz5360
Copy link
Author

zz5360 commented Jul 6, 2020

你也遇到了横竖屏切换的问题吗?

我是直接横批,如果设置比率大小会有问题,默认显示太小。 我后来是直接反编译了源码,改了里面的代码

@keaitao0321
Copy link

muPDFReaderView.setScaleX(2.2f);
muPDFReaderView.setScaleY(1.5f);
这样设置倒是可以解决横屏显示太小的问题,但是这页的内容显示不全了,底下的一些文本显示不出来,可以请教下,你是怎么解决的吗

@zz5360
Copy link
Author

zz5360 commented Jul 6, 2020

muPDFReaderView.setScaleX(2.2f);
muPDFReaderView.setScaleY(1.5f);
这样设置倒是可以解决横屏显示太小的问题,但是这页的内容显示不全了,底下的一些文本显示不出来,可以请教下,你是怎么解决的吗

博主这个设置主要是设置显示View的大小, 并不能设置pdf本身的比例 ,如果你想要改变本身的比例得反编译源码设置ReaderView的mScale 属性

@keaitao0321
Copy link

你说的是反射吧,我是直接把作者的源码复制出来的。这要修改这一个值么?你具体是怎么修改的,

@keaitao0321
Copy link

image

@zz5360
Copy link
Author

zz5360 commented Jul 6, 2020

你说的是反射吧,我是直接把作者的源码复制出来的。这要修改这一个值么?你具体是怎么修改的,

因为源码里并没有公开属性 ,你直接修改mScale 的值就可以看到效果了

@keaitao0321
Copy link

谢谢,我如下修改解决了该问题
/**
* 修改缩放比
*
* @param mConfiguration
*/
private void chanageScale(Configuration mConfiguration) {
int mOrientation = mConfiguration.orientation;
if (mOrientation == Configuration.ORIENTATION_LANDSCAPE) {
//切换为横屏
DisplayMetrics displayMetrics = UIUtils.getDisplayMetrics();
float scaledDensity = displayMetrics.scaledDensity;
mScale = scaledDensity;
muPDFReaderView.setScale(mScale);
} else if (mOrientation == Configuration.ORIENTATION_PORTRAIT) {
//切换为竖屏
mScale = 1.0f;
muPDFReaderView.setScale(mScale);
}
}

遇到其他问题我们可以再讨论

@oy-paddy
Copy link

谢谢,我如下修改解决了该问题
/**

  • 修改缩放比
  • @param mConfiguration
    */
    private void chanageScale(Configuration mConfiguration) {
    int mOrientation = mConfiguration.orientation;
    if (mOrientation == Configuration.ORIENTATION_LANDSCAPE) {
    //切换为横屏
    DisplayMetrics displayMetrics = UIUtils.getDisplayMetrics();
    float scaledDensity = displayMetrics.scaledDensity;
    mScale = scaledDensity;
    muPDFReaderView.setScale(mScale);
    } else if (mOrientation == Configuration.ORIENTATION_PORTRAIT) {
    //切换为竖屏
    mScale = 1.0f;
    muPDFReaderView.setScale(mScale);
    }
    }

遇到其他问题我们可以再讨论

请问一下,源码在哪里下载的。

@oy-paddy
Copy link

花了一些时间,把com.lonelypluto:pdf-viewer:1.0.7.jar 包源代码给移植出来,虽然少了一些资源文件(图片,布局),但是这些可以在github上搜索到!不难,就是需要花些时间,然后修改源码 ReaderView 类MAX_SCALE 最大缩放,因为之前的缩放到最大还是太小了。

@keaitao0321
Copy link

我就是一个个去复制源码的,不过不知道能不能不修改 ReaderView 类MAX_SCALE ,有什么API可以直接修改字体的大小,不过想想也不现实,毕竟这个是PDF文件了

@oy-paddy
Copy link

我就是一个个去复制源码的,不过不知道能不能不修改 ReaderView 类MAX_SCALE ,有什么API可以直接修改字体的大小,不过想想也不现实,毕竟这个是PDF文件了
setPaintStrockWidth 函数可以设置画笔大小

@oy-paddy
Copy link

@keaitao0321

@keaitao0321
Copy link

这个函数是设置手绘画笔大小的,不是设置pdf文件本身字体大小的 @oy-paddy

@oy-paddy
Copy link

@keaitao0321 其实可以一加载完毕,就放大倍数显示。因为市面上没有可以直接设置PDF文字显示的大小

@keaitao0321
Copy link

对的,可是客户的需求想象力总是天马行空。其他有相关的api可以获取到当前页面的所有文字信息。可以自己读取出来组成一个String ,用TextView显示这样就可以放大缩小了,不过之前的文本格式对不上来了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants