绘制线性布局后创建PDF

问题描述 投票:0回答:1

我正在尝试创建带有表格布局的嵌套线性布局的PDF。我的问题是,我最初的尝试导致绘制的文件没有完整的视图。

为了解决这个问题,我决定只在视图加载完成后才写入文件,并且我尝试使用ViewTreeObserver.globalOnLayoutListener监听事件,但从未引起人们注意。因此,我决定使用View.post(),但它似乎也不起作用。我已经等待了4分钟,因为布局文件很大,但可能不会花些时间绘制,但是监听器以及后来的runnable从未被调用过。我使用两个断点和logcat验证了事实。

我要去哪里错了?

android android-linearlayout android-tablelayout fileoutputstream android-viewtreeobserver
1个回答
0
投票

所以我想通了,这并不是我在完成布局渲染之前就调用了绘图,我只是想使用xxhdpi屏幕在A4 PostScript pt大小的页面上进行绘图,该屏幕的像素太多,无法容纳尺寸。为了解决这个问题,我使用px值而不是dp作为视图尺寸,并且我还将布局尺寸设置为与页面相同,以确保内容完美匹配。

我设法通过调用measure(width, height)来强制视图重新测量其本身及其子项的大小(受提供的尺寸限制),然后通过layout(left, top, right, bottom)强制其渲染其自身及其子项的大小来更改布局的视图尺寸。在由传递的坐标创建的边界内。

最好的是,度量和布局都是同步的,因此在尝试执行任何操作之前,可以确保视图已准备就绪。

© www.soinside.com 2019 - 2024. All rights reserved.