控制动图组件新增事件和文件缓存数量最大值修改

Signed-off-by: zgf <zenggaofeng2@h-partners.com>
This commit is contained in:
zgf 2024-08-14 17:29:58 +08:00
parent bea89c5c77
commit 48b425109a
7 changed files with 50 additions and 11 deletions

View File

@ -1,3 +1,7 @@
## 3.1.0-rc.1
- ImageKnifeAnimatorComponent新增开始、结束、暂停的回调事件
- 文件缓存数量负数和超过INT最大值时默认为INT最大值
## 3.1.0-rc.0 ## 3.1.0-rc.0
- ComponentV2装饰器适配 - ComponentV2装饰器适配
- imageKnifeOption={...}用法改为new ImageKnifeOption({...}) - imageKnifeOption={...}用法改为new ImageKnifeOption({...})

View File

@ -245,7 +245,7 @@ ImageKnifeComponent({ ImageKnifeOption: new ImageKnifeOption(
}) })
}).width(100).height(100) }).width(100).height(100)
``` ```
#### 9.ImageKnifeComponent - syncLoad #### 9.ImageKnifeComponent - syncLoad
设置是否同步加载图片默认是异步加载。建议加载尺寸较小的本地图片时将syncLoad设为true因为耗时较短在主线程上执行即可 设置是否同步加载图片默认是异步加载。建议加载尺寸较小的本地图片时将syncLoad设为true因为耗时较短在主线程上执行即可
``` ```
ImageKnifeComponent({ ImageKnifeComponent({
@ -273,11 +273,16 @@ ImageKnifeAnimatorComponent({
| ImageKnifeAnimatorComponent | ImageKnifeOption、AnimatorOption | 动图控制组件 | | ImageKnifeAnimatorComponent | ImageKnifeOption、AnimatorOption | 动图控制组件 |
### AnimatorOption参数列表 ### AnimatorOption参数列表
| 参数名称 | 入参内容 | 功能简介 | | 参数名称 | 入参内容 | 功能简介 |
|-----------------------|-------------------------------------------------------|----------| |------------|-----------------|----------|
| state | AnimationStatus | 播放状态(可选) | | state | AnimationStatus | 播放状态(可选) |
| iterations | number | 播放次数(可选) | | iterations | number | 播放次数(可选) |
| reverse | boolean | 播放顺序(可选) | | reverse | boolean | 播放顺序(可选) |
| onStart | ()=>void | 动画开始播放时触发(可选) |
| onFinish | ()=>void | 动画播放完成时或者停止播放时触发(可选) |
| onPause | ()=>void | 动画暂停播放时触发(可选) |
| onCancel | ()=>void | 动画返回最初状态时触发(可选) |
| onRepeat | ()=>void | 动画重复播放时触发(可选) |
### ImageKnifeOption参数列表 ### ImageKnifeOption参数列表

View File

@ -33,9 +33,15 @@ struct ImageAnimatorPage {
Flex(){ Flex(){
Button("播放").onClick(()=>{ Button("播放").onClick(()=>{
this.animatorOption.state = AnimationStatus.Running this.animatorOption.state = AnimationStatus.Running
this.animatorOption.onStart = ()=>{
console.log("ImageKnifeAnimatorComponent animatorOption onStart")
}
}) })
Button("暂停").onClick(()=>{ Button("暂停").onClick(()=>{
this.animatorOption.state = AnimationStatus.Paused this.animatorOption.state = AnimationStatus.Paused
this.animatorOption.onFinish = ()=>{
console.log("ImageKnifeAnimatorComponent animatorOption onFinish")
}
}) })
Button("停止").onClick(()=>{ Button("停止").onClick(()=>{
this.animatorOption.state = AnimationStatus.Stopped this.animatorOption.state = AnimationStatus.Stopped

View File

@ -14,7 +14,7 @@
"main": "index.ets", "main": "index.ets",
"repository": "https://gitee.com/openharmony-tpc/ImageKnife", "repository": "https://gitee.com/openharmony-tpc/ImageKnife",
"type": "module", "type": "module",
"version": "3.0.1-rc.2", "version": "3.1.0-rc.1",
"dependencies": { "dependencies": {
"@ohos/gpu_transform": "^1.0.2" "@ohos/gpu_transform": "^1.0.2"
}, },

View File

@ -26,6 +26,11 @@ interface AnimatorType {
state?: AnimationStatus state?: AnimationStatus
iterations?: number iterations?: number
reverse?: boolean reverse?: boolean
onStart?:()=>void
onFinish?:()=>void
onPause?:()=>void
onCancel?:()=>void
onRepeat?:()=>void
} }
@ObservedV2 @ObservedV2
export class AnimatorOption { export class AnimatorOption {
@ -35,11 +40,25 @@ export class AnimatorOption {
iterations?: number = -1 iterations?: number = -1
@Trace @Trace
reverse?: boolean = false reverse?: boolean = false
@Trace
onStart?:()=>void
@Trace
onFinish?:()=>void
@Trace
onPause?:()=>void
@Trace
onCancel?:()=>void
@Trace
onRepeat?:()=>void
constructor(option?:AnimatorType) { constructor(option?:AnimatorType) {
this.state = option?.state this.state = option?.state
this.iterations = option?.iterations this.iterations = option?.iterations
this.reverse = option?.reverse this.reverse = option?.reverse
this.onStart = option?.onStart
this.onFinish = option?.onFinish
this.onPause = option?.onPause
this.onCancel = option?.onCancel
this.onRepeat = option?.onRepeat
} }
} }
interface ImageOption { interface ImageOption {

View File

@ -88,6 +88,11 @@ export struct ImageKnifeAnimatorComponent {
} }
} }
}) })
.onStart(this.animatorOption.onStart)
.onFinish(this.animatorOption.onFinish)
.onPause(this.animatorOption.onPause)
.onCancel(this.animatorOption.onCancel)
.onRepeat(this.animatorOption.onRepeat)
} }
getCurrentContext(): common.UIAbilityContext { getCurrentContext(): common.UIAbilityContext {

View File

@ -18,7 +18,7 @@ import fs from '@ohos.file.fs';
import { LogUtil } from './LogUtil'; import { LogUtil } from './LogUtil';
import { SparkMD5 } from '../3rd_party/sparkmd5/spark-md5'; import { SparkMD5 } from '../3rd_party/sparkmd5/spark-md5';
const INT_MAX = 2147483647
/** /**
* 二级文件缓存 * 二级文件缓存
* 主线程通过lruCache管理缓存大小 * 主线程通过lruCache管理缓存大小
@ -34,12 +34,12 @@ export class FileCache {
private isInited: boolean = false private isInited: boolean = false
private context?: Context private context?: Context
readonly defaultMaxSize: number = 512; readonly defaultMaxSize: number = 512;
readonly defaultSize: number = 128; readonly defaultSize: number = INT_MAX;
readonly defaultMaxMemorySize: number = 512 * 1024 * 1024; readonly defaultMaxMemorySize: number = 512 * 1024 * 1024;
readonly defaultMemorySize: number = 128 * 1024 * 1024; readonly defaultMemorySize: number = 128 * 1024 * 1024;
constructor(context: Context, size: number, memory: number) { constructor(context: Context, size: number, memory: number) {
if (size <= 0) { if (size <= 0 || size > INT_MAX) {
size = this.defaultSize size = this.defaultSize
} }
if (memory <= 0 || memory > this.defaultMaxMemorySize) { if (memory <= 0 || memory > this.defaultMaxMemorySize) {