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 에 설정 합 니 다.박문 의 내용 은 비교적 간단 하지만 매우 실 용적 이 며 반 걸음 을 내 딛 지 않 으 면 천리 에 이 르 지 못 하 므 로 필요 한 친구 에 게 어느 정도 도움 이 되 기 를 바 랍 니 다.
온전한
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.