我有一个需要在PDF上显示的布局列表。但是,我想找到一种方法可以将这些视图合并为一个视图。
for(LinearLayout cardView : selectedCardIDList){
pageNo++;
cardView.measure(measuredWidth, 0);
cardView.layout(0, 0, pageWidth, cardView.getHeight());
cardView.draw(canvas);
}
这是我用来绘制每个视图的方法。我想合并这些视图,然后绘制新视图。
这是一个简短的示例,我用“ V”作为视图来绘制。
在左侧,我有View 1和View 2,我想尝试将它们堆叠在一个全新的视图(如View 3)中。希望这会有所帮助
private void generatePDF(){
PrintAttributes printAttributes = new PrintAttributes.Builder()
.setColorMode(PrintAttributes.COLOR_MODE_COLOR)
.setMediaSize(PrintAttributes.MediaSize.ISO_A4)
.setMinMargins(PrintAttributes.Margins.NO_MARGINS)
.setResolution(new PrintAttributes.Resolution("Res_Test", PRINT_SERVICE, 450, 700))
.build();
PdfDocument document = new PrintedPdfDocument(getActivity(), printAttributes);
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(595,842,1).create();
PdfDocument.Page page = document.startPage(pageInfo);
for(LinearLayout cardView : selectedCardIDList){
((ViewGroup)cardView.getParent()).removeView(cardView);
combiPDfView.addView(cardView);
}
combiPDfView.draw(canvas);
document.finishPage(page);
}
这是我用来生成PDF的方法。
<LinearLayout
android:id="@+id/pdfView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="invisible"/>
这是我添加视图并显示在PDF上的布局。 combiPDfView是LinearLayout的名称。
答案 0 :(得分:1)
您可以使用以下方法实现此目的:
采用垂直方向的父级Linearlayout
LinearLayout parentView= findViewById(R.id.parentView);
添加视图的代码
for(LinearLayout cardView : selectedCardIDList){
// View to be added
pageNo++;
cardView.measure(measuredWidth, 0);
cardView.layout(0, 0, pageWidth, cardView.getHeight());
cardView.draw(canvas);
//add view to parent view
parentView.addView(cardView);
}