點擊藍字 ╳ 關注我們
周黎生
OpenHarmony知識體系工作組
背景說明
組件選型,能力對比

重構前后能力對比

重構完成的內容
重構中比較重要的點


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) // 自定義組件已支持設置通用屬性和事件,這里寬高設置放在鏈式調用中完成
.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);
// 全局配置網絡加載進度條
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) // 自定義組件已支持設置通用屬性和事件,這里寬高設置放在鏈式調用中完成
.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) // 滑動到邊緣無效果
.chainAnimation(false) // 聯(lián)動特效關閉
}.width('100%')
}.width('100%').height('100%').backgroundColor(0xDCDCDC).padding({ top: 5 })
}
}渲染層重構的總結
原文標題:基于ArkUI框架開發(fā)-ImageKnife渲染層重構
文章出處:【微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
鴻蒙
+關注
關注
60文章
2874瀏覽量
45438 -
OpenHarmony
+關注
關注
31文章
3931瀏覽量
20784
原文標題:基于ArkUI框架開發(fā)-ImageKnife渲染層重構
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
熱點推薦
知乎開源“智能預渲染框架” 幾行代碼實現鴻蒙應用頁面“秒開”
近日,知乎在Gitee平臺開源了其自研的鴻蒙“智能預渲染框架”,并將該框架的Har包上架到OpenHarmony三方庫中心倉。該框架在鴻蒙平臺首創(chuàng)“智能預
【HarmonyOS next】ArkUI-X休閑娛樂搞笑日歷【基礎】
引言
在跨平臺應用開發(fā)中,網絡圖片在不同設備上的適配展示是常見挑戰(zhàn)。本文將基于HarmonyOS next的ArkUI-X框架,通過一個休閑娛樂日歷應用,展示如何實現網絡圖片在華為和iOS設備上
發(fā)表于 06-28 22:07
【HarmonyOS next】ArkUI-X休閑益智連連看【進階】
一套代碼雙端運行的跨平臺實踐
在移動應用開發(fā)中,跨平臺技術始終是開發(fā)者追求的圣杯。借助ArkUI-X框架,我們僅用一套ArkTS代碼即可實現應用在HarmonyOS和iOS雙端的原生級
發(fā)表于 06-28 21:51
【HarmonyOS next】ArkUI-X休閑益智兒童拼圖【進階】
一、前言:當拼圖遇上跨端開發(fā)
最近在開發(fā)一款跨平臺的兒童拼圖游戲時,我深刻體會到了ArkUI-X框架的威力——同一套代碼竟能同時在華為Mate60 Pro和iPhone15上流暢運行!
發(fā)表于 06-28 21:41
【HarmonyOS next】ArkUI-X休閑益智猜字謎【基礎】
下圖是在iOS中的運行效果
下圖是在HarmonyOS中的運行效果
今天咱們來聊聊如何用ArkUI-X這個新興框架實現跨端開發(fā),通過一個猜字謎小游戲帶大家感受它的開發(fā)魅力。本文不僅能讓
發(fā)表于 06-26 20:01
ArkUI介紹
ArkUI(方舟UI框架)為應用的UI開發(fā)提供了完整的基礎設施,包括簡潔的UI語法、豐富的UI功能(組件、布局、動畫以及交互事件),以及實時界面預覽工具等,可以支持開發(fā)者進行可視化界面
發(fā)表于 06-24 06:41
UI開發(fā)概述
使用UI開發(fā)框架開發(fā)應用時,主要涉及如下開發(fā)過程。開發(fā)者可以先通過第一個入門實例了解整個應用的UI開發(fā)過程。
任務簡介相關指導學習Ark
發(fā)表于 06-24 06:36
HarmonyOS NEXT應用元服務布局優(yōu)化ArkUI框架執(zhí)行流程
一、 ArkUI框架執(zhí)行流程
在使用ArkUI開發(fā)中,我們通過布局組件和基礎組件進行界面描述,這些描述會呈現出一個組件樹的結構,基礎組件在其中為葉子結點,布局組件則是中間節(jié)點,可以把這
發(fā)表于 06-23 09:41
ArkUI-X應用工程結構說明
簡介
本文檔配套ArkUI-X,將OpenHarmony ArkUI開發(fā)框架擴展到不同的OS平臺,比如Android和iOS平臺,讓開發(fā)者基
發(fā)表于 06-19 23:11
ArkUI-X跨平臺應用改造指南
,包含了應用的所有UI界面、彈窗、媒體圖片等元素,這些都是能夠被用戶直接感知并進行操作的。此層是借助HarmonyOS的ArkUI組件以及相關能力來進行設計與開發(fā)的,并且ArkUI-X
發(fā)表于 06-16 23:05
ArkUI-X在Android平臺動態(tài)化開發(fā)指南
本文介紹如何在Android平臺進行ArkUI-X動態(tài)化開發(fā),包括動態(tài)化目錄規(guī)則及約束。
適用場景
動態(tài)化主要包括兩個典型場景:
場景1:框架動態(tài)化,為了降低應用ROM體積占用,及滿足動態(tài)升級
發(fā)表于 06-15 23:33
ArkUI-X框架LogInterface使用指南
WARN/INFO/DEBUG),存在應用崩潰的風險。
注意:開發(fā)者使用時注冊,必須位于調用MyApplication超類的onCreate()方法之后
設置ArkUI-X框架
發(fā)表于 06-15 23:20
Get這個秘籍,鴻蒙原生應用頁面滑動絲滑無比
問題的解決方案,通過創(chuàng)新技術手段解決不同技術棧下的性能瓶頸,為開發(fā)者提供更流暢的頁面渲染體驗,有效提升鴻蒙應用的頁面滑動流暢度。
ArkUI頁面動態(tài)預加載:兼顧應用首頁速度與滑動流暢性
在Ar
發(fā)表于 03-06 14:41
華為推出RN/H5多設備自適應組件庫
存在大量用跨平臺框架開發(fā)的應用,部分頁面采用React Native(RN)和H5等框架開發(fā),這些框架在系統(tǒng)級的多設備適配能力上相對有限,導致在折疊機、平板等設備上的適配效率不如ArkUI

基于ArkUI框架開發(fā)-ImageKnife渲染層重構

評論