簡體   English   中英

Android:以編程方式制作圖像並將其保存到 Bitmap 的最佳方法?

[英]Android: Best Way to Programmatically Make an Image and Save it to a Bitmap?

我有一個連接到外部打印機設備的應用程序,我需要獲取一些用戶數據並動態制作圖像並打印它。 打印機 API 需要 bitmap 作為打印輸入。 請注意,我從不想將程序創建的圖像繪制到屏幕上; 圖像的生成和打印沒有可見的 UI,它發生在后台。

到目前為止,我已經考慮過以下方式之一:

1) 制作一個 canvas,從不調用繪圖函數,將其轉換為 bitmap 然后打印(有點偏離使用 Canvas API 的預期方式)

2)制作一個隱藏的 ImageView xml 布局,永遠不要讓它可見,將其轉換為 bitmap 然后打印(這可能會變得很棘手,因為它會消耗資源,因為我可能會在布局中動態編輯它感覺效率低下)

您對最佳方法有何看法? 我考慮過的兩種方式中的任何一種都感覺有點老套,讓我渴望使用專用的 API 來生成自定義圖像。

最符合平台的解決方案是采用 Canvas 方法。

首先,您應該創建所需尺寸的 Bitmap 並將其傳遞給Canvas(Bitmap)構造函數。 然后,您將所需的任何內容繪制到 canvas 上,並保留對 bitmap 的引用,以便在整個應用程序中使用任何您需要的地方(在我的情況下,它被發送到打印機)。

來自Android 文檔對於視圖層次結構或單個視圖的一小部分的軟件渲染快照,建議從 Z86EE74BAFF479D85D18F2CDA9F8A951 調用創建 Canvas。

示例代碼:

bitmap = Bitmap.createBitmap(LABEL_SIDE_LENGTH, LABEL_SIDE_LENGTH, Bitmap.Config.ARGB_8888)

接下來 [in override fun draw(canvas: Canvas)]像這樣設置 Canvas 的 Bitmap;

canvas.setBitmap(bitmap)

您保留對bitmap的引用,它可以在您需要的任何地方使用

暫無
暫無

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

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