- 相機(jī)拍照
private Uri mImageUri;
//假設(shè)拍照片保存在DCIM公共目錄,為了查看方便,盡可能的將邏輯寫(xiě)在一個(gè)方法里
private void takePicture() {
String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath();
String name = System.currentTimeMillis() + ".jpg";
File file = new File(path,name);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
/**
* 主要適配的點(diǎn)在mImageUri賦值這里
*/
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
// Android Q得用MediaStore先存一下
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DISPLAY_NAME,name);
values.put(MediaStore.Images.Media.RELATIVE_PATH,Environment.DIRECTORY_DCIM);
values.put(MediaStore.Images.Media.MIME_TYPE,"image/jpeg");
mUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
// Android N版本需要用FileProvider
mUri = FileProvider.getUriForFile(this,getPackageName()+ "fileProvider",file);
} else {
// 古老的版本用這個(gè)
mUri = Uri.fromFile(file);
}
// 指定圖片保存的位置
intent.putExtra(MediaStore.EXTRA_OUTPUT,mUri);
startActivityForResult(intent,REQUEST_CODE_CAMERA);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_CAMERA) {
if (resultCode == RESULT_OK) {
// 這里就不要用data.getData()了,有可能返回空。
// 直接用之前的mUri
// 低版本需要絕對(duì)地址的,直接拿方法中的path
Glide.with(this).load(mUri).into(mImageView);
}
}
}
- 拍視頻
依葫蘆畫(huà)瓢吧!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。