正文

圖像存儲(chǔ)和元數(shù)據(jù)(2)

Android多媒體開發(fā)高級編程 作者:(美)艾佛瑞


content://media/external/images/media/16

您可能注意到的第一件事情是它看上去像普通的URL,正如在Web瀏覽器中所使用的一樣;但是,它不是以類似http(傳輸網(wǎng)頁的協(xié)議)的字符串開始,而是以content作為開始。在Android中,當(dāng)一個(gè)Uri以content開始時(shí),它將由內(nèi)容提供器(如MediaStore)使用。

2. 檢索保存的圖像

對于之前所獲得的用來保存圖像的相同Uri,同樣也可以將其用于訪問該圖像。無須將該文件的完整路徑傳遞給BitmapFactory,相反,我們可以通過內(nèi)容解析器為圖像打開一個(gè)InputStream,并將它傳遞給BitmapFactory。

Bitmap bmp = BitmapFactory.decodeStream(

getContentResolver().openInputStream(imageFileUri), null, bmpFactoryOptions);

3. 后期添加元數(shù)據(jù)

在將圖像捕獲到MediaStore中之后,如果希望將圖像與更多的元數(shù)據(jù)關(guān)聯(lián),那么可以使用內(nèi)容解析器的update方法。除了現(xiàn)在直接使用其Uri訪問圖像文件之外,它與之前所用的insert方法非常類似。

// 更新記錄的標(biāo)題和描述

ContentValues contentValues = new ContentValues(3);

contentValues.put(Media.DISPLAY_NAME, "This is a test title");

contentValues.put(Media.DESCRIPTION, "This is a test description");

getContentResolver().update(imageFileUri,contentValues,null,null);

1.2.2  更新CameraActivity以使用MediaStore存儲(chǔ)圖像和關(guān)聯(lián)元數(shù)據(jù)

以下代碼是上述示例的更新,它將在MediaStore中保存圖像,然后允許添加標(biāo)題和描述。此外,該版本包含幾個(gè)UI元素,我們將基于用戶在該應(yīng)用程序的操作進(jìn)程對這些元素的可見性進(jìn)行管理。


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)