调用摄像头拍照并显示
来源:互联网 发布:美工专业培训学校 编辑:程序博客网 时间:2024/04/28 16:37
package com.example.choosepictest;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Environment;import android.provider.MediaStore;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageButton;import android.widget.ImageView;import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;public class MainActivity extends AppCompatActivity { public static final int TAKE_PHOTO = 1; public static final int CROP_PHOTO = 2 ; private Button takephoto; private ImageView picture ; private Uri imageUri ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); takephoto = (Button) findViewById(R.id.take_phone); picture = (ImageView) findViewById( R.id.picture) ; takephoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //创建File对象,用于存储拍照后的照片 File outputImage = new File(Environment.getExternalStorageDirectory(),"output_image.jpg"); System.out.println(Environment.getExternalStorageDirectory()); try { if(outputImage.exists()){ outputImage.delete(); } outputImage.createNewFile(); }catch (IOException e){ e.printStackTrace(); } imageUri = Uri.fromFile(outputImage); Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri); startActivityForResult(intent , TAKE_PHOTO);//需要返回结果判断拍照成功的故用这个方法 } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode){ case TAKE_PHOTO: if(resultCode == RESULT_OK){ Intent intent = new Intent("com.android.camera.action.CROP");//为系统剪裁的Action intent.setDataAndType(imageUri ,"image/*"); //设置剪裁的属性类型 intent.putExtra("scale",true);//scale为缩放的意思 intent.putExtra(MediaStore.EXTRA_OUTPUT , imageUri); startActivityForResult(intent , CROP_PHOTO); //需要返回结果来判断是否截图成功的故用这个方法 } break; case CROP_PHOTO: if(resultCode==RESULT_OK){ try{ Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));//而contentresolver则是用于管理所有程序的contentprovider实例 picture.setImageBitmap(bitmap); }catch (FileNotFoundException e){ e.printStackTrace(); } } break; default:break; } }}
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<?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" ><Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Take photo" android:id="@+id/take_phone"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/picture" android:layout_gravity="center_vertical"/></LinearLayout>
总结:1 Environment.getExternalStorageDirectory() 得到SD卡的根目录
2 剪裁照片的属性设置
3 解析成位图
0 0
- 调用摄像头拍照并显示
- android调用摄像头拍照并显示
- 《OpenCV》Part2 OpenCV3.1.0调用摄像头显示视频并拍照
- Android调用系统摄像头拍照并显示在ImageView上
- Html调用摄像头并拍照
- matlab调用下摄像头,用GUI界面显示摄像头的画面并实现拍照
- jmf实现调用笔记本摄像头并拍照
- html调用摄像头拍照,并生成预览
- HTML 5调用摄像头并进行拍照
- Android 调用摄像头拍照并裁剪
- 调用Matlab摄像头函数,拍照并保存
- Android打开摄像头拍照,并显示出来
- android 调用摄像头进行拍照,并对照片进行裁剪,然后显示。
- 调用系统摄像头拍照,对拍照后的图片进行裁剪和压缩处理,并显示在imageview上面
- 实现asp程序调用摄像头并控制摄像头进行拍照
- java 如何调用摄像头并拍照保存照片
- Android应用中调用手机摄像头拍照并保存
- android 调用摄像头自动拍照 并上传到YEELINK
- labview生成exe之后的路径问题
- KMP算法详解 (转)
- mui解决 所有a标签 导航不能跳转页面
- OpenCppCoverage 引起测试程序Crash问题
- iOS 万能跳转界面方法 (runtime实用篇一)
- 调用摄像头拍照并显示
- spring注解(二)
- Qstring.contains()
- 148. Sort List
- springmvc的file上传实例
- [Android]Resources NotFoundException的解决
- Androd M动态权限申请
- Wake文件转换【Excel----->Arff】
- 步进电机工作原理