Android 는 시스템 카 메 라 를 호출 하여 사진 을 찍 어 ImageView 에 표시 합 니 다.

간단 한 소개
현재 시장 에 있 는 apk 는 사용자 센터 와 관련 되면 모두 프로필 사진 이 있 고 이 프로필 사진 도 사용자 정의 할 수 있 습 니 다.어떤 것 은 앨범 을 읽 고 그 중 하 나 를 필요 한 사진 으로 선택 합 니 다.다른 하 나 는 시스템 카 메 라 를 이용 하여 사진 을 찍 고 실시 간 사진 을 얻 는 것 입 니 다.본 박문 은 카 메 라 를 어떻게 사용 하여 사진 을 찍 고 지 정 된 컨트롤 에 표시 하 는 지 설명 합 니 다.
일단 효과 도 를 볼 게 요.

여기 서 제 가 사용 하 는 것 은 시 뮬 레이 터 에 카메라 가 없어 서 사진 을 찍 는 것 은 검은색 입 니 다.안에 있 는 빨간색 동그라미 두 개 는 Genymotion 이 자체 적 으로 가지 고 있 는 표지 입 니 다.
실현 하기 가 비교적 간단 하 다.
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="    "
 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>
레이아웃 파일 의 가장 바깥쪽 에 수직 으로 배 열 된 LinearLayout 에는 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);
 }
 }
}

activity 의 코드 를 분석 해 보 겠 습 니 다.먼저 ButterKnife 원 키 로 코드 를 주입 하여 수 동 findViewById()를 제거 하고 button 의 클릭 사건 을 설정 합 니 다.ButterKnife 에 익숙 하지 않 은 동 지 는 볼 수 있 습 니 다Android Studio 는 ButterKnife 와 Zelezny 를 사용 합 니 다.이벤트 트리거 를 클릭 한 후 시스템 의 action 을 호출 하여 카메라 촬영 인터페이스 를 열 수 있 습 니 다.이 안에서 startActivity ForResult 는 이 방법 을 사용 하여 리 셋 해 야 합 니 다.첫 번 째 매개 변 수 는 intent 이 고 두 번 째 매개 변 수 는 사용자 정의 Int 형 표지 입 니 다.onActivity Result()를 다시 쓰 고 requestCode==CAMERA 를 판단 해 야 합 니 다.REQUEST && resultCode == RESULT_OK,마지막 으로 Bitmap 를 가 져 와 imageview 에 설정 합 니 다.
박문 의 내용 은 비교적 간단 하지만 매우 실 용적 이 며 반 걸음 을 내 딛 지 않 으 면 천리 에 이 르 지 못 하 므 로 필요 한 친구 에 게 어느 정도 도움 이 되 기 를 바 랍 니 다.
온전한
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기