感謝關注HarmonyOS,為了便于大家學習特將鴻蒙2.0基礎教學內容整理如下:
1、HarmonyOS應用開發—視頻播放
https://developer.huawei.com/consumer/cn/codelab/HarmonyOS-hap1/index.html#0
2、HarmonyOS應用開發—基本控制元件
https://developer.huawei.com/consumer/cn/codelab/HarmonyOS-hap2/index.html#0
3、HarmonyOS應用開發—UI開發與預覽
https://developer.huawei.com/consumer/cn/codelab/HarmonyOS-ui/index.html#0
4、HarmonyOS應用開發—設備虛擬化特性開發
https://developer.huawei.com/consumer/cn/codelab/HarmonyOS-screenhardware/index.html#0
5、HarmonyOS應用開發—HelloWorld應用開發E2E體驗
https://developer.huawei.com/consumer/cn/codelab/HarmonyOS-HelloWorld/index.html#0
6、HarmonyOS應用開發—有界面元程式互動
https://developer.huawei.com/consumer/cn/codelab/HarmonyOS-hap6/index.html#0
7、HarmonyOS應用開發-分布式任務調度
https://developer.huawei.com/consumer/cn/codelab/HarmonyOS-hap5/index.html#0
8、HarmonyOS應用開發—剪切板
https://developer.huawei.com/consumer/cn/codelab/HarmonyOS-hap4/index.html#0
9、HarmonyOS應用開發—應用偏好資料讀寫
https://developer.huawei.com/consumer/cn/codelab/HarmonyOS-hap3/index.html#0
以下為HarmonyOS應用開發—基本控制元件節選部分,如想進一步了解,請點擊:HarmonyOS應用開發—基本控制元件
HarmonyOS應用開發-基本控制元件
1、介紹
您將建立什么
在這個Codelab中,你將創建Demo Project,并將Demo編譯成Hap,此示例應用程式展示了如何使用輕量級偏好資料庫,
您將會學到什么
如何創建一個HarmonyOS Demo Project
如何構建一個Hap并且將其部署到智慧屏真機
通過此示例應用體驗如何使用輕量級偏好資料庫
2. 您需要什么
硬體要求
作業系統:Windows10 64位
記憶體:8G及以上,
硬碟:100G及以上,
解析度:1280*800及以上
軟體要求
DevEco Studio:需手動下載安裝,詳細步驟請參考《DevEco Studio使用指南》2.1.2
JDK:DevEco Studio自動安裝,
Node.js:請手動下載安裝,詳細步驟請參考《DevEco Studio使用指南》2.1.3 下載和安裝Node.js,
HarmonyOS SDK:待DevEco Studio安裝完成后,利用DevEco Studio來加載HarmonyOS SDK,詳細步驟請參考《DevEco Studio使用指南》2.1.6 加載HarmonyOS SDK,
Maven庫依賴包:如需手動拷貝和配置,詳細步驟請參考《DevEco Studio使用指南》2.3 離線方式配置Maven庫,
需要的知識點
Java基礎開發能力,
3. 能力接入準備
實作HarmonyOS應用開發,需要完成以下準備作業:
環境準備,
環境搭建,
創建專案
申請除錯證書
應用開發
具體操作,請按照《DevEco Studio使用指南》中詳細說明來完成,
4. 代碼片段
1. 布局:
布局代碼:
LayoutConfig config = new LayoutConfig(LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_PARENT);
myLayout.setLayoutConfig(config);
myLayout.setOrientation(Component.VERTICAL);
ShapeElement element = new ShapeElement();
element.setRgbColor(new RgbColor(255, 255, 255));
myLayout.setBackground(element);
log = createText("日志資訊");
myLayout.addComponent(log);
writeBtn = createBtn("寫入preferences資料", new RgbColor(0, 0, 255), 1002);
readBtn = createBtn("讀取preferences資料", new RgbColor(0, 0, 255), 1003);
addObserver = createBtn("注冊觀察者", new RgbColor(255, 0, 0), 1004);
private Text createText(String title) {
Text text = new Text(this);
DirectionalLayout.LayoutConfig config = new DirectionalLayout.LayoutConfig(DirectionalLayout.LayoutConfig.MATCH_CONTENT, DirectionalLayout.LayoutConfig.MATCH_CONTENT);
text.setLayoutConfig(config);
text.setText(title);
text.setTextSize(48);
text.setTextColor(new Color(0xFF0000FF));
return text;
}
private Button createBtn(String title, RgbColor color, int id) {
Button btn = new Button(this);
LayoutConfig configBtn = new LayoutConfig(500, 100);
configBtn.topMargin = 30;
btn.setLayoutConfig(configBtn);
btn.setText(title);
btn.setId(id);
btn.setTextSize(48);
btn.setTextColor(new Color(0xFFFFFFFF));
ShapeElement elementBtn = new ShapeElement();
elementBtn.setRgbColor(color);
elementBtn.setCornerRadius(12);
btn.setBackground(elementBtn);
myLayout.addComponent(btn);
return btn;
}
2. Preferences使用:
Preferences初始化
private void initPreferences() {
DatabaseHelper databaseHelper = new DatabaseHelper(this);
String fileName = "user_info";
preferences = databaseHelper.getPreferences(fileName);
}
寫檔案:
preferences.putInt("age", Integer.parseInt(age.getText()));
preferences.putString("name", name.getText());
preferences.flushSync();
讀檔案:
int age = preferences.getInt("age", 0);
String name = preferences.getString("name", "");
ToastDialog toastDialog = new ToastDialog(PreferencesAbilitySlice.this);
toastDialog.setText("read user data frome preferences name:" + name + ", age:" + age);
toastDialog.show();
觀察者:
注冊:
counter = new PreferencesChangeCounter();
preferences.registerObserver(counter);
private class PreferencesChangeCounter implements Preferences.PreferencesObserver {
@Override
public void onChange(Preferences preferences, String key) {
if ("name".equals(key)) {
String name = preferences.getString("name", "");
log.setText("user data name is edit:" + name);
}
if ("age".equals(key)) {
int age = preferences.getInt("age", 0);
log.setText("user data age is edit:" + age);
}
}
}
洗掉:
preferences.unregisterObserver(counter);
3. 回應遙控器點擊
在zh-CN.json檔案中寫入:
private void addFocusChangedListener(Component view) {
view.setFocusChangedListener(new Component.FocusChangedListener() {
@Override
public void onFocusChange(Component component, boolean b) {
ShapeElement shapeElement = (ShapeElement) view.getBackgroundElement();
if (b) {
shapeElement.setStroke(10, new RgbColor(0, 0, 0));
focusView = view;
} else {
shapeElement.setStroke(0, new RgbColor(0, 0, 0));
}
}
});
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent keyEvent) {
switch (keyCode) {
case KeyEvent.KEY_DPAD_CENTER:
case KeyEvent.KEY_ENTER:
if(focusView == writeBtn) {
preferences.putInt("age", index++);
preferences.putString("name", "張三");
preferences.flushSync();
}
if(focusView == readBtn) {
int age = preferences.getInt("age", 0);
String name = preferences.getString("name", "");
log.setText("read user data frome preferences name:" + name + ", age:" + age);
}
if(focusView == addObserver) {
if (addObserver.getText().equals("注冊觀察者")) {
addObserver.setText("洗掉觀察者");
// 向preferences實體注冊觀察者
counter = new PreferencesChangeCounter();
preferences.registerObserver(counter);
} else {
addObserver.setText("注冊觀察者");
// 向preferences實體注銷觀察者
preferences.unregisterObserver(counter);
}
}
return true;
case KeyEvent.KEY_DPAD_UP:
int position = views.indexOf(focusView.getId());
if (position > 0) {
switch (position) {
case 1:
writeBtn.requestFocus();
break;
case 2:
readBtn.requestFocus();
break;
default:
break;
}
}
return true;
case KeyEvent.KEY_DPAD_DOWN:
position = views.indexOf(focusView.getId());
if (position < 3) {
switch (position) {
case 0:
readBtn.requestFocus();
break;
case 1:
addObserver.requestFocus();
break;
default:
break;
}
}
return true;
}
return false;
}
4.編譯運行該應用
通過hdc連接大屏設備
先查看智慧屏IP:
大屏設定->"網路與連接"->"網路"->"有線網路"
在cmd或者IDE的Terminal輸入命令:
hdc tconn 192.168.3.9:5555
運行hap

提示:需要通過注冊成開發者才能完成集成準備中的操作,
干得好
- 你已經成功完成了HarmonyOS應用開發E2E體驗,學到了:
- 如何創建一個HarmonyOS Demo Project
- 如何構建一個Hap并且將其部署到真機上
- 在HarmonyOS上如何使用HarmonyOS的輕量級偏好資料庫
【如果您想學習HarmonyOS 應用開發基礎教程 請猛戳】
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/7912.html
標籤:其他
