android记事本添加拍照功能,android项目 之 记事本(2)------- 添加照片
时间: 2023-08-18 16:14:18 浏览: 177
Android实现拍照功能
要在Android记事本应用程序中添加拍照功能,需要进行如下步骤:
1. 添加权限:在AndroidManifest.xml文件中添加以下权限
```xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
2. 在布局文件中添加一个Button或ImageView,用于触发拍照事件。
3. 在Java代码中添加以下代码,用于处理拍照事件
```java
private static final int REQUEST_IMAGE_CAPTURE = 1;
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
// 将图片存储到文件或数据库中
}
}
```
4. 在AndroidManifest.xml文件中添加以下provider,用于保存图片
```xml
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.example.mynotebook.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
```
5. 在res/xml目录下创建file_paths.xml文件,添加以下代码
```xml
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="my_images" path="Android/data/com.example.mynotebook/files/Pictures" />
</paths>
```
6. 将拍摄的图片保存到文件中。
```java
private File createImageFile() throws IOException {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
);
// Save a file: path for use with ACTION_VIEW intents
currentPhotoPath = image.getAbsolutePath();
return image;
}
```
7. 将图片显示在ImageView或者列表中。
参考代码:
https://github.com/MindorksOpenSource/android-mvp-architecture/tree/master/app/src/main/java/com/mindorks/framework/mvp/ui/photo_gallery
阅读全文