今天分享的是用系统自带的相机实现一键拍照功能。
public class MainActivity extends AppCompatActivity {
private static final int TAKE_VIDEO = 101;
private ImageView iv;
private VideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
videoView = (VideoView) findViewById(R.id.vv);
}
public void btn(View view) {
switch (view.getId()) {
case R.id.button:
//跳转到拍视频的界面
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, TAKE_VIDEO);
}
}
/**
* 处理数据
*
* @param requestCode
* @param resultCode
* @param data
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//判断请求码和返回码
if (requestCode == TAKE_VIDEO && resultCode == RESULT_OK) {
//获取数据路径
Uri uri = data.getData();
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
if (cursor.moveToFirst()) {
//获取数据的路径
String dataPath = cursor.getString(cursor.getColumnIndex("_data"));
//播放视频
videoView.setVideoPath(dataPath);
//控制视频
videoView.setMediaController(new MediaController(MainActivity.this));
//开始播放视频
videoView.start();
//获取视频的缩略图
Bitmap bp = ThumbnailUtils.createVideoThumbnail(dataPath, MediaStore.Video.Thumbnails.MINI_KIND);
iv.setImageBitmap(bp);
}
}
}
}