拍摄照片(鸿蒙系统01)
好的,我将为你进一步完善这个项目,增加更多的功能,并提供详细的说明。我们将添加以下功能:
相册浏览:用户可以查看已拍摄的照片。
照片保存:用户可以将拍摄的照片保存到本地。
设置页面:用户可以调整一些基本设置,如闪光灯模式。
帮助页面:提供一些使用指南和常见问题解答。
项目结构
code
拍照小助手/
│
├── entry/
│ ├── src/
│ │ ├── main/
│ │ │ ├── js/
│ │ │ │ └── 默认/
│ │ │ │ ├── 页面/
│ │ │ │ │ ├── 主页/
│ │ │ │ │ │ ├── 主页.hml
│ │ │ │ │ │ ├── 主页.css
│ │ │ │ │ │ └── 主页.js
│ │ │ │ │ ├── 相册/
│ │ │ │ │ │ ├── 相册.hml
│ │ │ │ │ │ ├── 相册.css
│ │ │ │ │ │ └── 相册.js
│ │ │ │ │ ├── 设置/
│ │ │ │ │ │ ├── 设置.hml
│ │ │ │ │ │ ├── 设置.css
│ │ │ │ │ │ └── 设置.js
│ │ │ │ │ └── 帮助/
│ │ │ │ │ ├── 帮助.hml
│ │ │ │ │ ├── 帮助.css
│ │ │ │ │ └── 帮助.js
│ │ │ │ └── 路由.json
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── 拍照小助手/
│ │ │ │ ├── 主能力.java
│ │ │ │ └── 主能力切片.java
│ │ │ └── 配置.json
│ │ └── build.gradle
│ └── build/
│
├── build.gradle
└── settings.gradle
文件内容
build.gradle
(项目根目录)
apply plugin: 'com.android.application'android {compileSdkVersion 30defaultConfig {applicationId "com.example.拍照小助手"minSdkVersion 21targetSdkVersion 30versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'com.huawei.hms:ml-computer-vision:5.0.0.300'
}
settings.gradle
(项目根目录)
include ':entry'
配置.json
(entry/src/main/)
{"app": {"bundleName": "com.example.拍照小助手","version": {"code": 1,"name": "1.0"}},"module": {"name": "entry","type": "entry","abilities": [{"name": ".主能力","label": "$string:app_name","icon": "$media:icon","description": "$string:app_description","launchType": "standard","orientation": "unspecified","backgroundModes": ["dataTransfer"],"skills": [{"actions": ["action.system.home"]}]}],"resources": {"base": {"media": [{"name": "icon","path": "media/icon.png"}]}}}
}
主能力.java
(entry/src/main/java/com/拍照小助手/)
java
package com.拍照小助手;import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;public class 主能力 extends Ability {@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setMainRoute(com.拍照小助手.切片.主能力切片.class.getName());}
}
主能力切片.java
(entry/src/main/java/com/拍照小助手/切片/)
java
package com.拍照小助手.切片;import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Image;
import ohos.agp.components.ListContainer;
import ohos.agp.components.Text;
import ohos.app.Context;
import ohos.media.capture.Camera;
import ohos.media.capture.CameraDevice;
import ohos.media.capture.PreviewCallback;
import ohos.utils.net.Uri;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;public class 主能力切片 extends AbilitySlice {private CameraDevice cameraDevice;private Image photoImage;private List<String> photoList = new ArrayList<>();private Context context;@Overrideprotected void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_主能力);context = this;Button takePhotoButton = (Button) findComponentById(ResourceTable.Id_拍照按钮);Button viewAlbumButton = (Button) findComponentById(ResourceTable