AndroidStudio调用摄像头
16lz
2021-01-26
逻辑部分:
package com.example.qing.third;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Build;import android.provider.MediaStore;import android.support.annotation.Nullable;import android.support.v4.content.FileProvider;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;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; private ImageView picture; private Uri imageUri; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button takePhoto=(Button)findViewById(R.id.take_photo); picture=(ImageView)findViewById(R.id.picture); takePhoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { File outputImage=new File(getExternalCacheDir(),"output_image.jpg"); try{ if(outputImage.exists()){ outputImage.delete(); } outputImage.createNewFile(); }catch (IOException e){ e.printStackTrace(); } if(Build.VERSION.SDK_INT>=24){ imageUri=FileProvider.getUriForFile(MainActivity.this,"com.example.cameraalbumtest.fileprovider",outputImage); } else{ imageUri=Uri.fromFile(outputImage); } Intent intent=new Intent("android.media.action.IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri); startActivityForResult(intent,TAKE_PHOTO); } }); } @Override //使用的是startActivityForResult会有结果返回到onActivityResult方法中去 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { switch (requestCode){ case TAKE_PHOTO: if(resultCode==RESULT_OK){ try{ Bitmap bitmap=BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri)); picture.setImageBitmap(bitmap); }catch (FileNotFoundException e){ e.printStackTrace(); } } break; default: break; } }}
布局部分:
<?xml version="1.0" encoding="utf-8"?>
xml:
<?xml version="1.0" encoding="utf-8"?>
更多相关文章
- android-仿iOS弹出框
- RecyclerView指定布局管理器
- Android文字跑马灯
- Activity销毁时返回数据
- android中的有道词典
- Android(安卓)RecyclerView网格布局
- Android(安卓)BaseFragment基类
- ANDROID -- Bluetooth
- Kotlin简单开发-RecyclerView