照相机的使用

时间:2021-08-24 20:27:44

要想使用照相机,首先要添加权限:

<!-- 启用照相机权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FLASHLIGHT" />

我在这里写了一个使用着点击拍照的方法,可以直接来调用:

public Uri  takepicture(Activity activity) {
try {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
String dirFile = Environment.getExternalStorageDirectory().toString();
File file = new File(dirFile, "/OrderSystem");
if (!file.exists()) { //如果该文件夹不存在,则进行创建
file.mkdir();
}
File jpegTrueFile = new File(file, System.currentTimeMillis() + ".jpg");
imageUri = Uri.fromFile(jpegTrueFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
activity.startActivityForResult(intent, 100);

} catch (Exception ex) {
ex.printStackTrace();
} finally {
}
return imageUri;


可以直接使用,下面是MainACtivity中的代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==100){
Bitmap bit;
try {
bit = MediaStore.Images.Media.getBitmap(OrderDetailActivity.this.getContentResolver(), imageUri);
if (bit != null) {

Bitmap bitmap1 = ImageTools.savePhotoToSDCard(bit,imageUri.toString().substring(imageUri.toString().lastIndexOf("/") + 1));
order_show_image.setImageBitmap(bitmap1);

}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dialog.dismiss();
}
}
在这里返回相机拍的照片;想用的直接拿走,