Compare commits
3 Commits
bea89c5c77
...
fa59e2b9ac
Author | SHA1 | Date |
---|---|---|
|
fa59e2b9ac | |
|
bebbc865f7 | |
|
48b425109a |
|
@ -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({...})
|
||||||
|
|
20
README.md
20
README.md
|
@ -24,7 +24,6 @@
|
||||||
|
|
||||||
待实现特性
|
待实现特性
|
||||||
|
|
||||||
- gif/webp动图显示与控制
|
|
||||||
- 内存降采样优化,节约内存的占用
|
- 内存降采样优化,节约内存的占用
|
||||||
- 支持自定义图片解码
|
- 支持自定义图片解码
|
||||||
|
|
||||||
|
@ -39,7 +38,7 @@
|
||||||
|
|
||||||
- 不支持drawLifeCycle接口,通过canvas自会图片
|
- 不支持drawLifeCycle接口,通过canvas自会图片
|
||||||
- mainScaleType,border等参数,新版本与系统Image保持一致
|
- mainScaleType,border等参数,新版本与系统Image保持一致
|
||||||
- gif/webp动图播放与控制
|
- gif/webp动图播放与控制(ImageAnimator实现)
|
||||||
- 抗锯齿相关参数
|
- 抗锯齿相关参数
|
||||||
|
|
||||||
## 下载安装
|
## 下载安装
|
||||||
|
@ -245,7 +244,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 +272,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参数列表
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,22 @@ import { AnimatorOption, ImageKnifeAnimatorComponent,ImageKnifeOption } from "@o
|
||||||
struct ImageAnimatorPage {
|
struct ImageAnimatorPage {
|
||||||
@Local animatorOption: AnimatorOption = new AnimatorOption({
|
@Local animatorOption: AnimatorOption = new AnimatorOption({
|
||||||
state: AnimationStatus.Running,
|
state: AnimationStatus.Running,
|
||||||
iterations: -1
|
iterations: -1,
|
||||||
|
onFinish:()=>{
|
||||||
|
console.log("ImageKnifeAnimatorComponent animatorOption onFinish")
|
||||||
|
},
|
||||||
|
onStart:()=>{
|
||||||
|
console.log("ImageKnifeAnimatorComponent animatorOption onStart")
|
||||||
|
},
|
||||||
|
onPause:()=>{
|
||||||
|
console.log("ImageKnifeAnimatorComponent animatorOption onPause")
|
||||||
|
},
|
||||||
|
onCancel:()=>{
|
||||||
|
console.log("ImageKnifeAnimatorComponent animatorOption onCancel")
|
||||||
|
},
|
||||||
|
onRepeat:()=>{
|
||||||
|
console.log("ImageKnifeAnimatorComponent animatorOption onRepeat")
|
||||||
|
}
|
||||||
})
|
})
|
||||||
@Local animatorOption1: AnimatorOption = new AnimatorOption({
|
@Local animatorOption1: AnimatorOption = new AnimatorOption({
|
||||||
state: AnimationStatus.Initial
|
state: AnimationStatus.Initial
|
||||||
|
|
|
@ -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"
|
||||||
},
|
},
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue