日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

harmonyos developer,HarmonyOS 基本控件的实现

發(fā)布時間:2025/3/12 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 harmonyos developer,HarmonyOS 基本控件的实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

感謝關(guān)注harmonyos,為了便于大家學(xué)習(xí)特將鴻蒙2.0基礎(chǔ)教學(xué)內(nèi)容整理如下:

以下為harmonyos應(yīng)用開發(fā)—基本控件節(jié)選部分,如想進一步了解,請點擊:harmonyos應(yīng)用開發(fā)—基本控件

harmonyos應(yīng)用開發(fā)-基本控件

1、介紹

您將建立什么

在這個codelab中,你將創(chuàng)建demo project,并將demo編譯成hap,此示例應(yīng)用程序展示了如何使用輕量級偏好數(shù)據(jù)庫。

您將會學(xué)到什么

如何創(chuàng)建一個harmonyos demo project

如何構(gòu)建一個hap并且將其部署到智慧屏真機

通過此示例應(yīng)用體驗如何使用輕量級偏好數(shù)據(jù)庫

2. 您需要什么

硬件要求

操作系統(tǒng):windows10 64位

內(nèi)存: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基礎(chǔ)開發(fā)能力。

3. 能力接入準(zhǔn)備

實現(xiàn)harmonyos應(yīng)用開發(fā),需要完成以下準(zhǔn)備工作:

環(huán)境準(zhǔn)備。

環(huán)境搭建。

創(chuàng)建項目

申請調(diào)試證書

應(yīng)用開發(fā)

具體操作,請按照《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數(shù)據(jù)", new rgbcolor(0, 0, 255), 1002);

readbtn = createbtn("讀取preferences數(shù)據(jù)", 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. 響應(yīng)遙控器點擊

在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.編譯運行該應(yīng)用

通過hdc連接大屏設(shè)備

先查看智慧屏ip:大屏設(shè)置->"網(wǎng)絡(luò)與連接"->"網(wǎng)絡(luò)"->"有線網(wǎng)絡(luò)"

在cmd或者ide的terminal輸入命令:

hdc tconn 192.168.3.9:5555

運行hap

提示:需要通過注冊成開發(fā)者才能完成集成準(zhǔn)備中的操作。

干得好

你已經(jīng)成功完成了harmonyos應(yīng)用開發(fā)e2e體驗,學(xué)到了:

如何創(chuàng)建一個harmonyos demo project

如何構(gòu)建一個hap并且將其部署到真機上

在harmonyos上如何使用harmonyos的輕量級偏好數(shù)據(jù)庫

到此這篇關(guān)于harmonyos應(yīng) 基本控件的實現(xiàn)的文章就介紹到這了,更多相關(guān)harmonyos應(yīng) 基本控件內(nèi)容請搜索萬仟網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持萬仟網(wǎng)!

總結(jié)

以上是生活随笔為你收集整理的harmonyos developer,HarmonyOS 基本控件的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。