代码实现
public class CameraActivity extends AppCompatActivity implements View.OnClickListener{
private Button open_pic,open_video,open_camera;
private ImageView imageView;
private VideoView videoView;
public static final int PIC_CODE=101;
public static final int VIDEO_CODE=102;
public static final int CAMERA_CODE=103;
File file;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
initView();
}
private void initView() {
open_camera=findViewById(R.id.open_camera);
open_pic=findViewById(R.id.open_pic);
open_video=findViewById(R.id.open_video);
open_video.setOnClickListener(this);
open_pic.setOnClickListener(this);
open_camera.setOnClickListener(this);
imageView=findViewById(R.id.image);
videoView=findViewById(R.id.video_view);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.open_pic://打开图库
open_pic();
break;
case R.id.open_video://打开摄像机
open_video();
case R.id.open_camera://打开摄像机
open_camera();
}
}
private void open_camera() {
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
long l = System.currentTimeMillis();
file = new File("/sdcard/"+l+".jpg");
ContentResolver contentResolver = getContentResolver();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.Images.Media.DATA,file.getAbsolutePath());
Uri uri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
startActivityForResult(intent,CAMERA_CODE);
}
private void open_video() {
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent,VIDEO_CODE);
}
private void open_pic() {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
intent.setType("image/*");
//TODO 3:启动intent
startActivityForResult(intent,PIC_CODE);
}
/***
*
* @param requestCode 请求吗
* @param resultCode 结果吗 OK
* @param data 返回的数据:包含选择照片
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==PIC_CODE&&resultCode== Activity.RESULT_OK){
Uri data1 = data.getData();
imageView.setImageURI(data1);
}else if(requestCode==VIDEO_CODE&&resultCode==Activity.RESULT_OK){
Uri data1 = data.getData();
Toast.makeText(this, ""+data1, Toast.LENGTH_SHORT).show();
videoView.setVideoURI(data1);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
videoView.start();
}
});
}else if(requestCode==CAMERA_CODE&&resultCode==Activity.RESULT_OK){
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
imageView.setImageBitmap(bitmap);
}
}
}