點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們
周黎生
OpenHarmony知識(shí)體系工作組
背景說(shuō)明
組件選型,能力對(duì)比

重構(gòu)前后能力對(duì)比

重構(gòu)完成的內(nèi)容
重構(gòu)中比較重要的點(diǎn)


import {ImageKnifeComponent} from '@ohos/imageknife'
import {ImageKnifeOption} from '@ohos/imageknife'
import {ImageKnifeDrawFactory} from '@ohos/imageknife'
@Entry
@Component
struct Index {
@State imageKnifeOption1: ImageKnifeOption =
{ // 加載一張本地的png資源(必選)
loadSrc: $r('app.media.pngSample'),
// 主圖的展示模式是 縮放至適合組件大小,并且在組件底部繪制
mainScaleType: ScaleType.FIT_END,
// 占位圖使用本地資源icon_loading(可選)
placeholderSrc: $r('app.media.icon_loading'),
// 失敗占位圖使用本地資源icon_failed(可選)
errorholderSrc: $r('app.media.icon_failed'),
// 繪制圓角30,邊框5,邊框"#ff00ff".用戶自定義繪制(可選)
drawLifeCycle:ImageKnifeDrawFactory.createRoundLifeCycle(5,"#ff00ff",30)
};
build() {
Scroll() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
ImageKnifeComponent({ imageKnifeOption: this.imageKnifeOption1 })
.width(300) // 自定義組件已支持設(shè)置通用屬性和事件,這里寬高設(shè)置放在鏈?zhǔn)秸{(diào)用中完成
.height(300)
}
}
.width('100%')
.height('100%')
}
}
import AbilityStage from '@ohos.application.Ability'
import { ImageKnife,ImageKnifeDrawFactory} from '@ohos/imageknife'
export default class EntryAbility extends Ability {
onCreate(want,launchParam) {
globalThis.ImageKnife = ImageKnife.with(this.context);
// 全局配置網(wǎng)絡(luò)加載進(jìn)度條
globalThis.ImageKnife.setDefaultLifeCycle(ImageKnifeDrawFactory.createProgressLifeCycle("#10a5ff", 0.5))
}
}
import {ImageKnifeComponent,ImageKnifeOption,ImageKnifeDrawFactory} from '@ohos/imageknife'
@Entry
@Component
struct Index {
@State imageKnifeOption1: ImageKnifeOption =
{ // 加載一張本地的png資源(必選)
loadSrc: $r('app.media.pngSample'),
};
build() {
Scroll() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
ImageKnifeComponent({ imageKnifeOption: this.imageKnifeOption1 })
.width(300) // 自定義組件已支持設(shè)置通用屬性和事件,這里寬高設(shè)置放在鏈?zhǔn)秸{(diào)用中完成
.height(300)
}
}
.width('100%')
.height('100%')
}
}import {ImageKnifeOption,ImageKnifeComponent} from '@ohos/imageknife'
@Entry
@Component
struct BasicTestFeatureAbilityPage {
urls=[
"http://e.hiphotos.baidu.com/image/pic/item/a1ec08fa513d2697e542494057fbb2fb4316d81e.jpg",
"http://c.hiphotos.baidu.com/image/pic/item/30adcbef76094b36de8a2fe5a1cc7cd98d109d99.jpg",
"http://h.hiphotos.baidu.com/image/pic/item/7c1ed21b0ef41bd5f2c2a9e953da81cb39db3d1d.jpg",
"http://g.hiphotos.baidu.com/image/pic/item/55e736d12f2eb938d5277fd5d0628535e5dd6f4a.jpg",
"http://e.hiphotos.baidu.com/image/pic/item/4e4a20a4462309f7e41f5cfe760e0cf3d6cad6ee.jpg",
]
@State options:Array = []
aboutToAppear(){
this.options = this.urls.map((url)=>{
return {
loadSrc:url
}
})
console.log('this.options length ='+this.options.length)
}
build() {
Stack({ alignContent: Alignment.TopStart }) {
Column() {
List({ space: 20, initialIndex: 0 }) {
ForEach(this.options, (item) => {
ListItem() {
ImageKnifeComponent({imageKnifeOption:item}).width(300).height(300)
}
}, item => item.loadSrc)
}
.listDirection(Axis.Vertical) // 排列方向
.divider({ strokeWidth: 2, color: 0xFFFFFF, startMargin: 20, endMargin: 20 }) // 每行之間的分界線
.edgeEffect(EdgeEffect.None) // 滑動(dòng)到邊緣無(wú)效果
.chainAnimation(false) // 聯(lián)動(dòng)特效關(guān)閉
}.width('100%')
}.width('100%').height('100%').backgroundColor(0xDCDCDC).padding({ top: 5 })
}
}渲染層重構(gòu)的總結(jié)
原文標(biāo)題:基于ArkUI框架開發(fā)-ImageKnife渲染層重構(gòu)
文章出處:【微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
鴻蒙
+關(guān)注
關(guān)注
60文章
2968瀏覽量
45951 -
OpenHarmony
+關(guān)注
關(guān)注
33文章
3955瀏覽量
21139
原文標(biāo)題:基于ArkUI框架開發(fā)-ImageKnife渲染層重構(gòu)
文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
知乎開源“智能預(yù)渲染框架” 幾行代碼實(shí)現(xiàn)鴻蒙應(yīng)用頁(yè)面“秒開”
近日,知乎在Gitee平臺(tái)開源了其自研的鴻蒙“智能預(yù)渲染框架”,并將該框架的Har包上架到OpenHarmony三方庫(kù)中心倉(cāng)。該框架在鴻蒙平臺(tái)首創(chuàng)“智能預(yù)
【HarmonyOS next】ArkUI-X休閑娛樂搞笑日歷【基礎(chǔ)】
引言
在跨平臺(tái)應(yīng)用開發(fā)中,網(wǎng)絡(luò)圖片在不同設(shè)備上的適配展示是常見挑戰(zhàn)。本文將基于HarmonyOS next的ArkUI-X框架,通過(guò)一個(gè)休閑娛樂日歷應(yīng)用,展示如何實(shí)現(xiàn)網(wǎng)絡(luò)圖片在華為和iOS設(shè)備上
發(fā)表于 06-28 22:07
【HarmonyOS next】ArkUI-X休閑益智連連看【進(jìn)階】
一套代碼雙端運(yùn)行的跨平臺(tái)實(shí)踐
在移動(dòng)應(yīng)用開發(fā)中,跨平臺(tái)技術(shù)始終是開發(fā)者追求的圣杯。借助ArkUI-X框架,我們僅用一套ArkTS代碼即可實(shí)現(xiàn)應(yīng)用在HarmonyOS和iOS雙端的原生級(jí)
發(fā)表于 06-28 21:51
【HarmonyOS next】ArkUI-X新聞熱搜聚合App【進(jìn)階】
API,展示了多平臺(tái)榜單數(shù)據(jù)并支持網(wǎng)頁(yè)詳情查看。項(xiàng)目采用ArkUI框架開發(fā),現(xiàn)通過(guò)ArkUI-X實(shí)現(xiàn)iOS平臺(tái)的無(wú)縫遷移。
1.2 核心技術(shù)棧
HarmonyOS:原生開發(fā)平臺(tái)
發(fā)表于 06-28 21:43
【HarmonyOS next】ArkUI-X休閑益智兒童拼圖【進(jìn)階】
一、前言:當(dāng)拼圖遇上跨端開發(fā)
最近在開發(fā)一款跨平臺(tái)的兒童拼圖游戲時(shí),我深刻體會(huì)到了ArkUI-X框架的威力——同一套代碼竟能同時(shí)在華為Mate60 Pro和iPhone15上流暢運(yùn)行!
發(fā)表于 06-28 21:41
【HarmonyOS next】ArkUI-X休閑益智猜字謎【基礎(chǔ)】
下圖是在iOS中的運(yùn)行效果
下圖是在HarmonyOS中的運(yùn)行效果
今天咱們來(lái)聊聊如何用ArkUI-X這個(gè)新興框架實(shí)現(xiàn)跨端開發(fā),通過(guò)一個(gè)猜字謎小游戲帶大家感受它的開發(fā)魅力。本文不僅能讓
發(fā)表于 06-26 20:01
ArkUI介紹
ArkUI(方舟UI框架)為應(yīng)用的UI開發(fā)提供了完整的基礎(chǔ)設(shè)施,包括簡(jiǎn)潔的UI語(yǔ)法、豐富的UI功能(組件、布局、動(dòng)畫以及交互事件),以及實(shí)時(shí)界面預(yù)覽工具等,可以支持開發(fā)者進(jìn)行可視化界面
發(fā)表于 06-24 06:41
UI開發(fā)概述
使用UI開發(fā)框架開發(fā)應(yīng)用時(shí),主要涉及如下開發(fā)過(guò)程。開發(fā)者可以先通過(guò)第一個(gè)入門實(shí)例了解整個(gè)應(yīng)用的UI開發(fā)過(guò)程。
任務(wù)簡(jiǎn)介相關(guān)指導(dǎo)學(xué)習(xí)Ark
發(fā)表于 06-24 06:36
ArkUI-X案例解析
!= undefined) {
this.backDisplaySyncSlow?.stop();
}
}
}
由于當(dāng)前ArkUI-X框架未適配這套方法,在arkui-x側(cè)實(shí)際上使用了
發(fā)表于 06-23 22:40
HarmonyOS NEXT應(yīng)用元服務(wù)布局優(yōu)化ArkUI框架執(zhí)行流程
一、 ArkUI框架執(zhí)行流程
在使用ArkUI開發(fā)中,我們通過(guò)布局組件和基礎(chǔ)組件進(jìn)行界面描述,這些描述會(huì)呈現(xiàn)出一個(gè)組件樹的結(jié)構(gòu),基礎(chǔ)組件在其中為葉子結(jié)點(diǎn),布局組件則是中間節(jié)點(diǎn),可以把這
發(fā)表于 06-23 09:41
ArkUI-X應(yīng)用工程結(jié)構(gòu)說(shuō)明
簡(jiǎn)介
本文檔配套ArkUI-X,將OpenHarmony ArkUI開發(fā)框架擴(kuò)展到不同的OS平臺(tái),比如Android和iOS平臺(tái),讓開發(fā)者基
發(fā)表于 06-19 23:11
ArkUI-X跨平臺(tái)應(yīng)用改造指南
,包含了應(yīng)用的所有UI界面、彈窗、媒體圖片等元素,這些都是能夠被用戶直接感知并進(jìn)行操作的。此層是借助HarmonyOS的ArkUI組件以及相關(guān)能力來(lái)進(jìn)行設(shè)計(jì)與開發(fā)的,并且ArkUI-X
發(fā)表于 06-16 23:05
ArkUI-X在Android平臺(tái)動(dòng)態(tài)化開發(fā)指南
本文介紹如何在Android平臺(tái)進(jìn)行ArkUI-X動(dòng)態(tài)化開發(fā),包括動(dòng)態(tài)化目錄規(guī)則及約束。
適用場(chǎng)景
動(dòng)態(tài)化主要包括兩個(gè)典型場(chǎng)景:
場(chǎng)景1:框架動(dòng)態(tài)化,為了降低應(yīng)用ROM體積占用,及滿足動(dòng)態(tài)升級(jí)
發(fā)表于 06-15 23:33
ArkUI-X框架LogInterface使用指南
WARN/INFO/DEBUG),存在應(yīng)用崩潰的風(fēng)險(xiǎn)。
注意:開發(fā)者使用時(shí)注冊(cè),必須位于調(diào)用MyApplication超類的onCreate()方法之后
設(shè)置ArkUI-X框架
發(fā)表于 06-15 23:20
ArkUI-X跨平臺(tái)框架接入指南
ArkUI跨平臺(tái)框架(ArkUI-X)進(jìn)一步將ArkUI開發(fā)框架擴(kuò)展到了多個(gè)OS平臺(tái):目前支持O
發(fā)表于 05-18 18:21
基于ArkUI框架開發(fā)-ImageKnife渲染層重構(gòu)

評(píng)論