android 摄像头基础知识

1.打开 android设备系统摄像头(隐形启动另一个应用)

Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(intent);

2.在此应用中寻找带有摄像头的应用(打开摄像头会询问选择使用的应用)

a.在Manifest.XML文件中添加

<intent-filter>
<action android:name="android.media.action.IMGAGE_CAPTURE"/>
<category android:name="android.intent.category.DEFAULT" />
/intent-filter>

3.将拍摄的图片(获得的是缩略图,省内存)保存至先前的界面上,需要使用到startActivityForResult。

在onActivityResult()方法中获得图片数据,并保存。

@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode,resultCode,data);

if(resultCode==RESULT_OK){
   if(requestCode==1){  // 1是自定义的请求参数
      Bundle bundle=data.getExtras();
      Bitmap bitmap=(Bitmap)bundle.get("data");
      iv.setImageBitmap(bitmap);
          }
       }

4.刚刚上面得到的是缩略图,如果想得到原图,需要保存在sd卡中。
既然需要sd卡,就应设置sd卡的权限

a.获得sd卡路径,并保存图片位置

String mfilepath;//全局变量
mfilepath=Environment.getExternalStorageDirectory().getPath();
mfilepath=mfilepath+"/"+"temp/png";

b.将拍摄的图片保存至sd卡中

Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri uri=Uri.fromFile(new File(mfilepath));
intent.putExtra(MediaStore.EXTRA_OUTPUT.uri);
startActivityForResult(intent,2); //2为自定义请求码,以便下文中onActivityResult()方法中能找到此intent

c.将文件流转换为Bitmap(注:在finally中关闭文件流)

在onActivityResult()方法中:

FileInputStream fis=null;
try{
fis=new FileInputStream(mfilepath);
Bitmap bitmap=BitmapFactory.decodeStream(fis);
iv.setImageBitmap(bitmap);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值