簡體   English   中英

以編程方式組合視圖-Android

[英]Combining views programmatically - Android

我有一個需要在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的名稱。

您可以使用以下方法實現此目的:

以垂直方向獲取父級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);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM