133 lines
4.5 KiB
Plaintext
133 lines
4.5 KiB
Plaintext
/*
|
|
* Copyright (C) 2024 Huawei Device Co., Ltd.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import { ImageKnifeComponent, ImageKnifeOption } from '@ohos/libraryimageknife'
|
|
|
|
@Entry
|
|
@Component
|
|
struct testImageKnifeNetPlaceholder {
|
|
@State imageKnifeOption: ImageKnifeOption =
|
|
{
|
|
loadSrc: $r('app.media.icon'),
|
|
placeholderSrc: $r('app.media.icon_loading'),
|
|
errorholderSrc: $r('app.media.icon_failed'),
|
|
};
|
|
@State imageKnifeOption1: ImageKnifeOption =
|
|
{
|
|
loadSrc: $r('app.media.icon'),
|
|
placeholderSrc: $r('app.media.icon_loading'),
|
|
errorholderSrc: $r('app.media.icon_failed'),
|
|
};
|
|
@State imageKnifeOption2: ImageKnifeOption =
|
|
{
|
|
loadSrc: $r('app.media.icon'),
|
|
placeholderSrc: $r('app.media.icon_loading'),
|
|
errorholderSrc: $r('app.media.icon_failed'),
|
|
};
|
|
|
|
build() {
|
|
Scroll() {
|
|
Column() {
|
|
Text('string类型占位图支持内存和磁盘读取').fontSize(30);
|
|
Text('验证磁盘有无图片可以先主图缓存一张图片,再退出应用').fontSize(15);
|
|
Text('仅第一次打开应用加载主图可以看到效果,因主图第二次加载速度很快').fontSize(15);
|
|
|
|
Row() {
|
|
Button('缓存一张图片作为占位图 图一')
|
|
.onClick(() => {
|
|
this.imageKnifeOption =
|
|
{
|
|
loadSrc: 'https://img-blog.csdn.net/20140514114029140',
|
|
placeholderSrc: $r('app.media.icon_loading'),
|
|
errorholderSrc: $r('app.media.icon_failed'),
|
|
}
|
|
})
|
|
}
|
|
|
|
Text('当图一没有展示,会从磁盘中拿占位图').fontSize(15);
|
|
Text('当图一展示时,会从内存中拿占位图,不会走磁盘逻辑').fontSize(15);
|
|
|
|
Text('下图展示的为后备回调符的图片').fontSize(15);
|
|
ImageKnifeComponent({ imageKnifeOption: {loadSrc:$r('app.media.mask_starfish')} })
|
|
.width(200)
|
|
.height(200)
|
|
.backgroundColor(Color.Orange)
|
|
|
|
Text('下图展示的主图为图二string类型的占位图').fontSize(15);
|
|
Text('图一:').fontSize(20);
|
|
ImageKnifeComponent({ imageKnifeOption: this.imageKnifeOption })
|
|
.width(200)
|
|
.height(200)
|
|
.backgroundColor(Color.Orange)
|
|
|
|
Row() {
|
|
Button('展示已缓存的占位图')
|
|
.onClick(() => {
|
|
this.imageKnifeOption1 =
|
|
{
|
|
loadSrc : $r('app.media.pngSample'),
|
|
placeholderSrc: 'https://img-blog.csdn.net/20140514114029140',
|
|
fallbackSrc: $r('app.media.mask_starfish'),
|
|
errorholderSrc: $r('app.media.icon_failed'),
|
|
}
|
|
})
|
|
|
|
Button('当占位图未缓存时展示后备回调符')
|
|
.onClick(() => {
|
|
this.imageKnifeOption2 =
|
|
{
|
|
loadSrc : $r('app.media.gifSample'),
|
|
placeholderSrc: 'https://img0.baidu.com/it/u=2794536113,2700219306&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=500',
|
|
fallbackSrc: $r('app.media.mask_starfish'),
|
|
errorholderSrc: $r('app.media.icon_failed'),
|
|
}
|
|
})
|
|
}
|
|
|
|
Text('展示已缓存的占位图,如图一未加载过则会显示后备回调符').fontSize(15);
|
|
Text('图二:').fontSize(20);
|
|
ImageKnifeComponent({ imageKnifeOption: this.imageKnifeOption1 })
|
|
.width(200)
|
|
.height(200)
|
|
.backgroundColor(Color.Orange)
|
|
|
|
Text('占位图未缓存展示后备回调符,如图三').fontSize(15);
|
|
Text('图三:').fontSize(20);
|
|
ImageKnifeComponent({ imageKnifeOption: this.imageKnifeOption2 })
|
|
.width(200)
|
|
.height(200)
|
|
.backgroundColor(Color.Orange)
|
|
|
|
}
|
|
.alignItems(HorizontalAlign.Center)
|
|
.width('100%')
|
|
|
|
}
|
|
.width('100%')
|
|
.height('100%')
|
|
}
|
|
|
|
aboutToAppear() {
|
|
|
|
}
|
|
|
|
aboutToDisappear() {
|
|
|
|
}
|
|
|
|
onBackPress() {
|
|
|
|
}
|
|
} |