Android调用系统camera
16lz
2021-01-26
package com.example.day10_camera;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.BitmapFactory.Options;import android.view.Menu;import android.view.View;import android.view.animation.RotateAnimation;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity {private ImageView image;private File file;private String path;private static final String PATTERN="yyyyMMddhhmmss"; //20130429104534.jpgprivate static final int CAMERA_REQUEST_CODE=8888;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);image=(ImageView) findViewById(R.id.image);initFile(); //实例化保存拍照的文件}private void initFile() {// TODO Auto-generated method stubif(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//得到sdcard路径path=Environment.getExternalStorageDirectory()+"";file=new File(path,getFileName());if(!file.exists()){try {file.createNewFile();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}else{Toast.makeText(MainActivity.this,"sdcard不可用", 2000).show();}}private String getFileName(){Date date=new Date();SimpleDateFormat sdf=new SimpleDateFormat(PATTERN);return sdf.format(date)+".jpg";}public void onBtnClick(View view){initCamera();}private void initCamera() {// TODO Auto-generated method stubIntent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);Uri uri=Uri.fromFile(file);intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);startActivityForResult(intent, CAMERA_REQUEST_CODE);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);if(requestCode==CAMERA_REQUEST_CODE&&resultCode==RESULT_OK){//获得之前保存的图片 然后显示在imageview上try {FileInputStream fis=new FileInputStream(file);BitmapFactory.Options options=new Options();options.inSampleSize=10; // 1/10Bitmap bitmap=BitmapFactory.decodeStream(fis, null, options);RotateAnimation animation=new RotateAnimation(0, 90, 150, 150);animation.setDuration(1000);animation.setFillAfter(true);image.setImageBitmap(bitmap);image.startAnimation(animation);} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
layout.xml
<RelativeLayout 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" tools:context=".MainActivity" > <Button android:id="@+id/button1" style="?android:attr/buttonStyleSmall" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="70dp" android:onClick="onBtnClick" android:text="拍照" /> <ImageView android:id="@+id/image" android:layout_width="320dp" android:layout_height="320dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/ic_launcher" /></RelativeLayout>
androidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.day10_camera" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.day10_camera.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
更多相关文章
- Android(安卓)Retrofit2网路编程实现方法详解
- Android存储登陆信息
- Decompiled .class file,bytecode version:52.0(Java 8) Source
- Android(安卓)调用相册 拍照 实现系统控件缩放 切割图片 .
- android 下载资源代码
- 笑谈Android之Shared Preferences
- Android获取所有存储卡挂载路径
- Android从相册中获取图片以及路径
- android 报错java.io.IOException: Permission denied