Android打印照片

2018-08-02 17:34 更新

編寫:jdneo - 原文:http://developer.android.com/training/printing/photos.html

拍攝并分享照片是移動(dòng)設(shè)備最流行的用法之一。如果我們的應(yīng)用拍攝了照片,并期望可以展示他們,或者允許用戶共享照片,那么我們就應(yīng)該考慮讓應(yīng)用可以打印出這些照片來。Android Support Library提供了一個(gè)方便的函數(shù),通過這一函數(shù),僅僅使用很少量的代碼和一些簡單的打印布局配置集,就能夠進(jìn)行照片打印。

這堂課將展示如何使用v4 support library中的PrintHelper類打印一幅圖片。

打印一幅圖片

Android Support Library中的PrintHelper類提供了一種打印圖片的簡單方法。該類有一個(gè)單一的布局選項(xiàng):setScaleMode(),它允許我們使用下面的兩個(gè)選項(xiàng)之一:

  • SCALE_MODE_FIT:該選項(xiàng)會(huì)調(diào)整圖像的大小,這樣整個(gè)圖像就會(huì)在打印有效區(qū)域內(nèi)全部顯示出來(等比例縮放至長和寬都包含在紙張頁面內(nèi))。
  • SCALE_MODE_FILL:該選項(xiàng)同樣會(huì)等比例地調(diào)整圖像的大小使圖像充滿整個(gè)打印有效區(qū)域,即讓圖像充滿整個(gè)紙張頁面。這就意味著如果選擇這個(gè)選項(xiàng),那么圖片的一部分(頂部和底部,或者左側(cè)和右側(cè))將無法打印出來。如果不設(shè)置圖像的打印布局選項(xiàng),該模式將是默認(rèn)的圖像拉伸方式。

這兩個(gè)setScaleMode()的圖像布局選項(xiàng)都會(huì)保持圖像原有的長寬比。下面的代碼展示了如何創(chuàng)建一個(gè)PrintHelper類的實(shí)例,設(shè)置布局選項(xiàng),并開始打印進(jìn)程:

private void doPhotoPrint() {
    PrintHelper photoPrinter = new PrintHelper(getActivity());
    photoPrinter.setScaleMode(PrintHelper.SCALE_MODE_FIT);
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.droids);
    photoPrinter.printBitmap("droids.jpg - test print", bitmap);
}

該方法可以作為一個(gè)菜單項(xiàng)的Action來被調(diào)用。注意對于那些不一定被設(shè)備支持的菜單項(xiàng)(比如有些設(shè)備可能無法支持打?。?,應(yīng)該放置在“更多菜單(overflow menu)”中。要獲取有關(guān)這方面的更多知識(shí),可以閱讀:Action Bar。

printBitmap()被調(diào)用之后,我們的應(yīng)用就不再需要進(jìn)行其他的操作了。之后Android打印界面就會(huì)出現(xiàn),允許用戶選擇一個(gè)打印機(jī)和它的打印選項(xiàng)。用戶可以打印圖像或者取消這一次操作。如果用戶選擇了打印圖像,那么一個(gè)打印任務(wù)將會(huì)被創(chuàng)建,同時(shí)在系統(tǒng)的通知欄中會(huì)顯示一個(gè)打印提醒通知。

如果希望在打印輸出中包含更多的內(nèi)容,而不僅僅是一張圖片,那么就必須構(gòu)造一個(gè)打印文檔。這方面知識(shí)將會(huì)在后面的兩節(jié)課程中展開。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號