2010-03-16 253 views
3

我試圖使用一個標準的意圖,將採取圖片,然後允許批准或重新。然後我想將圖片保存到文件中。如何將圖片保存到文件?

下面是我使用的意圖:

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

startActivityForResult(intent, 22); 

documentation說:

調用者可以通過一個額外的EXTRA_OUTPUT爲了控制這個 圖像將被寫入。如果EXTRA_OUTPUT不存在,則在額外字段中將返回小圖像作爲位圖對象。如果 存在EXTRA_OUTPUT,則全尺寸圖像將被寫入到EXTRA_OUTPUT的Uri值的 。

我沒有通過額外的輸出,我希望能得到一個位圖對象傳遞到onActivityResult()(這個要求)的意圖的額外字段。那麼你在哪裏/如何提取它?意圖有getExtras(),但是它返回一個Bundle,並且Bundle想要一個關鍵字串給你一些東西。

你在Intent上調用了什麼來提取位圖?

+0

大聲笑,聽起來很混亂,爲什麼你會做一個「意圖」的對象,好的Java和它的怪異屁股的品質。對我來說,java似乎把OO帶到了我開始懷疑它的用處的水平。 – ldog 2010-03-16 00:55:44

+0

這不是Java,gmatt。這是Android(谷歌手機API)。意圖對象是系統組件爲您做一些工作的請求。是的,我同意這聽起來令人困惑,但當你學習API時,大部分都是有意義的。 – 2010-03-16 04:26:57

+0

嗯有趣,我敢肯定,一旦你瞭解它就很有道理 - 從公正的觀察者的角度來看,它看起來不必要的鈍,而我對Java的刺傷可能源於幾年前當我被迫與某些人冷靜地工作時 - 爲我的工作提供了複雜的Java API。我想你可以說我對這種體驗感到痛苦,但也許我不應該把Android放在同一條船上 - 畢竟,它可能實際上在所有抽象層「起作用」,這比那些更不用說了。 API與我一起工作。 – ldog 2010-03-16 15:48:25

回答

3

嘗試撥打getExtras().get("data")並將結果轉換爲Bitmap

See here for an example

+0

謝謝 - 您的回答,以及您的示例代碼完美工作。 我可以問一下你將這些部分放在一起的步驟嗎?你是否幸運地找到一些好的材料,或者你是否在課堂上,或者你是實施者之一等? – 2010-03-16 05:01:01

+0

「我可以問一下你將哪些步驟放在一起?」我在谷歌搜索找到該博客文章。雖然我已經編寫了三本有關Android開發的書籍,但我還沒有使用相機「Intent」作爲縮略圖。 – CommonsWare 2010-03-16 11:59:46

0

在相關說明中,如果在使用intent.putExtra("crop", "true")拍攝照片後出現「裁剪」活動,您將從getExtras().get("action")得到裁剪的URI。

我意識到你現在已經掌握了這一切,只是想確保沒有人試圖用這種方式來處理作物,並且感到困惑。

參考:apps-for-android LolCat活動。