欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android調(diào)用系統(tǒng)攝像頭拍照并顯示在ImageView上

 更新時(shí)間:2018年04月27日 16:37:03   作者:CSDN_陳誠(chéng)  
這篇文章主要為大家詳細(xì)介紹了Android調(diào)用系統(tǒng)攝像頭拍照并顯示在ImageView上,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

簡(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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論