gpt4 book ai didi

Android:扩充布局并将其写入 PDF 会产生空白 PDF

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:42 24 4
gpt4 key购买 nike

当用户在 Activity 中选择共享按钮时,我想扩充布局、填充它,然后使用新的打印 API 将该布局写入 pdf。

在我的 fragment 中有

@TargetApi(Build.VERSION_CODES.KITKAT)
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_share_context:
LayoutInflator inflator = getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View container = inflator.inflate(R.layout.person_share, null, false);
TextView name = (TextView)topContainer.findViewById(R.id.person_name);
name.setText("Test Name");
PdfDocument document = new PdfDocument();
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(612, 792, 1).create()
PdfDocument.Page page = document.startPage(pageInfo)
container.draw(page.getCanvas());
document.finishPage(page)

// write pdf
...

不幸的是,这会输出一个空白的 pdf 文档。但是,当我使用屏幕上已经存在的 View (在 onCreateView(..) 中膨胀)时,它会按预期显示在 pdf 中。

如果有任何帮助,我将不胜感激。

最佳答案

如果我的理论是正确的——你的膨胀布局的宽度和高度仍然为零——你可以手动调用 measure()layout()大小和位置的东西:

root.measure(800, 480);
root.layout(0, 0, 800, 480);

给定一个名为 rootView,这将使它(及其子项,如果有的话)填充 800 像素宽 x 480 像素高的空间(例如, WVGA 设备,横向,全屏)。在您的情况下,您应该能够在 Canvas 上调用 getWidth()getHeight() 以确定要用于 measure()layout()

FWIW,就个人而言,我会生成 HTML 并将其用于打印的基础,而不是布局文件。这是我在 this sample project 中展示的技术之一。 .

关于Android:扩充布局并将其写入 PDF 会产生空白 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25055685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com