Android가 사진 자원을 가져오는 - 사진을 찍으면 프로그램에 사진을 표시합니다
예를 들어 1. SD 카드 선택;2. 사진 촬영을 통해;3. 인터넷을 통해 검색한다.
사진을 찍어서 사진 자원을 직접 얻는 것은 실현 원리가 간단하다. 여기서 간단하게 말하자면 다음과 같다.
먼저 사용 권한을 선언합니다.
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
그런 다음 레이아웃 파일:
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" "
/>
<ImageView
android:id="@+id/imageView"
android:layout_below="@id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
최종 구현:
코드 프로세스: 사용자가 사진 이벤트를 터치하기 ->SD카드에서 사진 파일을 만들기(일반적으로 앨범에서 만들거나 자신의 응용 프로그램의 자원 디렉터리에서 만들 수 있음) ->Intent를 통해 핸드폰 사진 기능을 호출하고 새로 만든 사진 파일을 인텔 파라미터에 처리한다. 즉,
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mPhotoFile));
.마지막으로 activity 반환 이벤트 (onActivity Result) 를 호출할 때, 사진 경로 (이전에 그림을 만들 때 전역 변수로 기억하기) 에 따라 BitmapFactory를 통과합니다.decodeFile () 에서 사진을 읽고 프로그램에 표시합니다.
1 package com.example.paizhao;
2
3 import java.io.File;
4 import java.text.SimpleDateFormat;
5 import java.util.Date;
6 import android.app.Activity;
7 import android.content.Intent;
8 import android.graphics.Bitmap;
9 import android.graphics.BitmapFactory;
10 import android.net.Uri;
11 import android.os.Bundle;
12 import android.provider.MediaStore;
13 import android.view.View;
14 import android.widget.Button;
15 import android.widget.ImageView;
16
17 public class MainActivity extends Activity {
18 private Button mButton;
19 private ImageView mImageView;//
20 private File mPhotoFile;
21 private String mPhotoPath;
22 public final static int CAMERA_RESULT = 8888;
23 public final static String TAG = "xx";
24
25 @Override
26 public void onCreate(Bundle savedInstanceState) {
27 super.onCreate(savedInstanceState);
28 setContentView(R.layout.main);
29 mButton = (Button) findViewById(R.id.button);
30 mButton.setOnClickListener(new ButtonOnClickListener());
31 mImageView = (ImageView) findViewById(R.id.imageView);
32 }
33
34 private class ButtonOnClickListener implements View.OnClickListener {
35 public void onClick(View v) {
36 try {
37 Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
38 mPhotoPath = "mnt/sdcard/DCIM/Camera/" + getPhotoFileName();
39 mPhotoFile = new File(mPhotoPath);
40 if (!mPhotoFile.exists()) {
41 mPhotoFile.createNewFile();
42 }
43 intent.putExtra(MediaStore.EXTRA_OUTPUT,
44 Uri.fromFile(mPhotoFile));
45 startActivityForResult(intent, CAMERA_RESULT);
46 } catch (Exception e) {
47 }
48 }
49 }
50
51 /**
52 *
53 * @return
54 */
55 private String getPhotoFileName() {
56 Date date = new Date(System.currentTimeMillis());
57 SimpleDateFormat dateFormat = new SimpleDateFormat(
58 "'IMG'_yyyyMMdd_HHmmss");
59 return dateFormat.format(date) + ".jpg";
60 }
61
62 @Override
63 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
64 super.onActivityResult(requestCode, resultCode, data);
65 if (requestCode == CAMERA_RESULT) {
66 Bitmap bitmap = BitmapFactory.decodeFile(mPhotoPath, null);
67 mImageView.setImageBitmap(bitmap);
68 }
69 }
70 }
코드가 많지 않아요. 간단하죠...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.