Android Camera

Android Camera Api的心得
Android從Camera中獲取圖片的兩種方法


通過以下兩種方式,可以在應(yīng)用程序中使用攝像機(jī)

  1. 使用現(xiàn)有應(yīng)用程序中Android攝像頭應(yīng)用程序
  2. 直接使用應(yīng)用程序提供的Android攝像頭APP
使用現(xiàn)有應(yīng)用程序的Android攝像頭應(yīng)用程序

使用MediaStore.ACTION_IMAGE_CAPTURE啟動安裝在手機(jī)上的攝像頭應(yīng)用程序辕近。它的語法下面給出:

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

除了以上蕊退,也可以通過MediaStore提供其它可用的意圖锉矢。它們列出如下

ACTION_IMAGE_CAPTURE_SECURE它返回照相機(jī)拍攝到的圖像础淤,設(shè)備被固定
ACTION_VIDEO_CAPTURE它調(diào)用已有的視頻應(yīng)用程序在Android中捕獲視頻
EXTRA_SCREEN_ORIENTATION它是用來在屏幕的方向設(shè)置:垂直或橫向
EXTRA_FULL_SCREEN它被用來控制ViewImage的用戶接口
INTENT_ACTION_VIDEO_CAMERA這個意圖是用來啟動攝像機(jī)在視頻模式
EXTRA_SIZE_LIMIT它用于指定的視頻或圖像捕獲尺寸大小限制

現(xiàn)在使用startActivityForResult()函數(shù)推出活動肤舞,并等待它的結(jié)果图仓。它的語法下面給出:

startActivityForResult(intent,0)

返回結(jié)果,其結(jié)果可以通過覆蓋onActivityResult方法獲得

startActivity(Intent intent, Int requestCode)中的requestCode用于回收Bundle時的識別揭厚。

相關(guān)函數(shù):
startActivityForResult(Intent intent, Int requestCode)
setResut(int resultCode, Intent intent)
onActivityResult(int requestCode, int resultCode, Intent intent)


eg:

MainActivity

//在onCreate中添加btn的onClick
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent,0);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){

super.onActivityResult(requestCode, resultCode, data);
Bitmap bp = (Bitmap)data.getExtras().get("data");
imgFavorite.setImageBitmap(bp);
}


補(bǔ)充:startActivityForResult

比較常用的應(yīng)用場景:

  1. 上傳頭像

點(diǎn)擊頭像后却特,彈出選擇對話框,選擇相冊或者拍照筛圆,完成后湖出現(xiàn)剪裁界面裂明,裁剪完成后,會將頭像顯示在界面上太援,如果有服務(wù)的話闽晦,會將頭像上傳到服務(wù)器。

  1. 登錄過程

在很多應(yīng)用程序的模塊中提岔,都有“我的”這個模塊仙蛉,在未登錄狀態(tài)下點(diǎn)擊其中的某一項(xiàng),就會彈出登錄界面碱蒙,登錄完成后回到我的界面荠瘪,會顯示一些登錄后的數(shù)據(jù)

startActivityForResult(intent, requestcode),該方法兩個參數(shù)一個是帶數(shù)據(jù)的Intent,另一個就是請求碼赛惩,這個請求碼是用于給activity識別是哪個activity返回的數(shù)據(jù)哀墓,因?yàn)樵谝粋€activity中可能會出現(xiàn)多個startActivityForResult.

onActivityResult(int requestCode, int resultCode, Intent data)該方法在startActivityForResult啟動的activity結(jié)束后返回數(shù)據(jù)時調(diào)用,其中第二個參數(shù)是結(jié)果碼喷兼,結(jié)果碼為RESULT_OK時麸祷,說明activity順利結(jié)束并返回結(jié)果。

第一個參數(shù)requestcode就是被啟動的activity的識別碼褒搔,在startActivityForResult方法時傳入。

第三個參數(shù)data是Intent型的數(shù)據(jù)喷面,該數(shù)據(jù)就是從activity返回回來的數(shù)據(jù)星瘾,可以使用data.getExtras()方法得到bundle,然后從bundle中取出一些基本數(shù)據(jù)。

activity要能成功返回數(shù)據(jù)惧辈,就必須在結(jié)束finish()之前調(diào)用setResult()方法琳状,該方法的兩個參數(shù),第一個為結(jié)果碼盒齿,也就是onActivityResult方法中的第二個參數(shù)resultcode,一般情況下我們都設(shè)置該值為RESULT_OK念逞。


在B中回傳數(shù)據(jù)時采用setResult方法困食,并且之后要調(diào)用finish方法。

setResult(RESULT_OK, intent); //intent為A傳來的帶有Bundle的intent翎承,當(dāng)然也可以自己定義新的    
Bundlefinish();//此處一定要調(diào)用finish()方法

按BACK鍵從一個Activity退出來的硕盹,一按BACK,android就會自動調(diào)用Activity的finish()方法叨咖,然后設(shè)置resultCode為RESULT_CANCELED瘩例,也就不會返回任何數(shù)據(jù)了 .解決方法就是在Activity里面捕獲按BACK的事件,捕獲到之后先setResult甸各,然后自己來調(diào)用finish,就搞定了……把BACK事件直接自己給吞了

@Override 
public void onBackPressed() { 
Log.i(TAG, "onBackPressed"); 
setResult(Const.LIVE_OK); 
super.onBackPressed(); 
}

直接使用應(yīng)用程序提供的Android攝像頭API


startActivityForResult和setResult詳解

Android基礎(chǔ)之——startActivityForResult啟動界面并返回數(shù)據(jù)垛贤,上傳頭像

http://blog.csdn.net/csr_yang/article/details/31034291?utm_source=tuicool&utm_medium=referral

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市趣倾,隨后出現(xiàn)的幾起案子聘惦,更是在濱河造成了極大的恐慌,老刑警劉巖儒恋,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件善绎,死亡現(xiàn)場離奇詭異,居然都是意外死亡碧浊,警方通過查閱死者的電腦和手機(jī)涂邀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來箱锐,“玉大人比勉,你說我怎么就攤上這事【灾梗” “怎么了浩聋?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長臊恋。 經(jīng)常有香客問我衣洁,道長,這世上最難降的妖魔是什么抖仅? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任坊夫,我火速辦了婚禮,結(jié)果婚禮上撤卢,老公的妹妹穿的比我還像新娘环凿。我一直安慰自己,他們只是感情好放吩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布智听。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪到推。 梳的紋絲不亂的頭發(fā)上考赛,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機(jī)與錄音莉测,去河邊找鬼颜骤。 笑死,一個胖子當(dāng)著我的面吹牛悔雹,可吹牛的內(nèi)容都是我干的复哆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼腌零,長吁一口氣:“原來是場噩夢啊……” “哼梯找!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起益涧,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤锈锤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后闲询,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體久免,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年扭弧,在試婚紗的時候發(fā)現(xiàn)自己被綠了阎姥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鸽捻,死狀恐怖呼巴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情御蒲,我是刑警寧澤衣赶,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站厚满,受9級特大地震影響府瞄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碘箍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一遵馆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丰榴,春花似錦团搞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽像吻。三九已至峻黍,卻和暖如春复隆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背姆涩。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工挽拂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骨饿。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓亏栈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宏赘。 傳聞我的和親對象是個殘疾皇子绒北,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,116評論 25 707
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,409評論 0 17
  • 在APP中使用camera的兩種方式 調(diào)用系統(tǒng)相機(jī)察署,或具有相機(jī)功能的應(yīng)用闷游。 /** * 啟動相機(jī)...
    蒹葭流閱讀 673評論 0 2
  • Day1: 在代碼中通過R.string.hello_world可以獲得該字符串的引用; 在XML中通過@stri...
    冰凝雪國閱讀 1,403評論 0 5
  • 曾說不歸路贴汪,你說一起走脐往, 暮年之秋,強(qiáng)述寬容扳埂。 愛像路過蜻蜓业簿,點(diǎn)起一圈漣漪, 緣由沿途風(fēng)景阳懂,相片指認(rèn)記憶梅尤。 一生太...
    可樂薄荷丶閱讀 149評論 0 1