Android調(diào)用系統(tǒng)攝像頭拍照并顯示在ImageView上
簡(jiǎn)介
現(xiàn)在市面上的apk只要涉及用戶中心都會(huì)有頭像,而且這個(gè)頭像也是可自定義的,有的會(huì)采取讀取相冊(cè)選擇其中一張作為需求照片,另一種就是調(diào)用系統(tǒng)攝像頭拍照并獲取即時(shí)照片,本博文就是講述如何調(diào)用攝像頭拍照并顯示在指定的控件上。
先來(lái)看看效果圖
由于這里我用的是模擬器沒有攝像頭,所以拍照是黑的,至于里面2個(gè)紅色圓圈那是Genymotion自帶的標(biāo)志。
實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.cc.csdndemo1.MainActivity"> <Button android:id="@+id/takephotoTV" android:text="開啟相機(jī)" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ImageView android:layout_gravity="center" android:id="@+id/imageIV" android:layout_width="300dp" android:layout_height="300dp"/> </LinearLayout>
布局文件最外層一個(gè)垂直排列的LinearLayout,里面放著一個(gè)Button和ImageView控件。
MainActivity.class
package com.cc.csdndemo1; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.Button; import android.widget.ImageView; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; public class MainActivity extends AppCompatActivity { @BindView(R.id.takephotoTV) Button takephotoTV; @BindView(R.id.imageIV) ImageView imageIV; private final int CAMERA_REQUEST = 8888; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); } @OnClick(R.id.takephotoTV) public void onClick() { Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_REQUEST); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { Bitmap photo = (Bitmap) data.getExtras().get("data"); imageIV.setImageBitmap(photo); } } }
我們來(lái)分析下activity的代碼,首先我們使用ButterKnife一鍵注入代碼,免去手動(dòng)findViewById()并設(shè)置button的點(diǎn)擊事件,對(duì)ButterKnife不熟悉的同志可以查看Android Studio使用ButterKnife和Zelezny,點(diǎn)擊事件觸發(fā)后調(diào)用系統(tǒng)的action開啟攝像頭拍照界面,在這里面我們要注意startActivityForResult必須使用這個(gè)方法來(lái)回調(diào),第一個(gè)參數(shù)為intent,第二個(gè)參數(shù)為自定義的Int型標(biāo)志,重寫onActivityResult(),判斷requestCode == CAMERA_REQUEST && resultCode == RESULT_OK,最后獲取Bitmap,設(shè)置給imageview。
博文內(nèi)容比較簡(jiǎn)單,但很實(shí)用,不積跬步無(wú)以至千里,希望對(duì)需要的朋友有一定的幫助。
完整的參考代碼
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Androidstudio調(diào)用攝像頭拍照并保存照片
- Android調(diào)用手機(jī)攝像頭拍照和錄音功能
- Android實(shí)現(xiàn)調(diào)用攝像頭拍照并存儲(chǔ)照片
- Android實(shí)現(xiàn)調(diào)用攝像頭拍照與視頻功能
- Android實(shí)現(xiàn)攝像頭拍照功能
- Android調(diào)用攝像頭拍照開發(fā)教程
- Android實(shí)現(xiàn)調(diào)用攝像頭進(jìn)行拍照功能
- Android 開發(fā)隨手筆記之使用攝像頭拍照
- Android調(diào)用外置攝像頭的方法
- Android實(shí)現(xiàn)控制攝像頭拍照
相關(guān)文章
Android編程實(shí)現(xiàn)wifi掃描及連接的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)wifi掃描及連接的方法,涉及Android網(wǎng)絡(luò)操作掃描、查找、連接、線程等相關(guān)操作技巧,需要的朋友可以參考下2018-02-02Android中給fragment寫入?yún)?shù)的輕量開發(fā)包FragmentArgs簡(jiǎn)介
這篇文章主要介紹了Android中給fragment寫入?yún)?shù)的輕量開發(fā)包FragmentArgs簡(jiǎn)介,需要的朋友可以參考下2014-10-10Android動(dòng)態(tài)修改應(yīng)用圖標(biāo)與名稱的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Android動(dòng)態(tài)修改應(yīng)用圖標(biāo)與名稱的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01Android NavigationView頭部設(shè)置監(jiān)聽事件
這篇文章主要為大家詳細(xì)介紹了Android NavigationView頭部設(shè)置監(jiān)聽事件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10java從輸入流中獲取數(shù)據(jù)并返回字節(jié)數(shù)組示例
這篇文章主要介紹了java從輸入流中獲取數(shù)據(jù)并以字節(jié)數(shù)組返回,這是一個(gè)常用的方法,以后可以直接拿來(lái)用。這種輸入流可以來(lái)自Android本地,也可以來(lái)自網(wǎng)絡(luò)2014-01-01Android中使用BitmapShader類來(lái)制作各種圖片的圓角
這篇文章主要介紹了Android中使用BitmapShader類來(lái)制作各種圖片的圓角的方法,文中隨教程講解帶出的例子可以輕松控制圖片圓形的變換,很好很強(qiáng)大,需要的朋友可以參考下2016-04-04RecyclerView實(shí)現(xiàn)水波紋點(diǎn)擊效果
這篇文章主要為大家詳細(xì)介紹了RecyclerView實(shí)現(xiàn)水波紋點(diǎn)擊效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01Android 監(jiān)聽Notification 被清除實(shí)例代碼
本文主要介紹Android 監(jiān)聽Notification 事件,這里給大家提供實(shí)例代碼進(jìn)行參考,有需要的小伙伴可以參考下2016-07-07Android利用Document實(shí)現(xiàn)xml讀取和寫入操作
這篇文章主要為大家詳細(xì)介紹了Android利用Document實(shí)現(xiàn)xml讀取和寫入操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12