王士厅

fix: 图文稿件详情页,点击图片查看大图,双击图片,屏幕黑屏。系统升级原来的代码不兼容,

... ... @@ -3,7 +3,7 @@ import { matrix4, promptAction, window } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';
import { ScaleModel } from '../model/ScaleModel';
import { OffsetModel } from '../model/OffsetModel';
import { windowSizeManager } from '../utils/Managers';
import { WindowSizeManager } from '../utils/Managers';
import { runWithAnimation } from '../utils/FuncUtils';
import { PhotoListBean } from 'wdBean/Index';
import { http } from '@kit.NetworkKit';
... ... @@ -31,12 +31,12 @@ export struct MultiPictureDetailItemComponent {
private swiperControllerItem: SwiperController = new SwiperController()
@State currentOffset: number = 0
@Consume duration: number
windowSizeManager: WindowSizeManager = new WindowSizeManager();
async aboutToAppear() {
this.imageUri = this.MultiPictureDetailItem.picPath
this.getPicture()
console.log(TAG, JSON.stringify(this.MultiPictureDetailItem))
}
/**
... ... @@ -113,15 +113,15 @@ export struct MultiPictureDetailItemComponent {
// const imageSource: image.ImageSource = image.createImageSource(this.imageUri);
imageSource.getImageInfo(0).then((data: image.ImageInfo) => {
this.imageWHRatio = data.size.width / data.size.height;
this.imageDefaultSize = this.calcImageDefaultSize(this.imageWHRatio, windowSizeManager.get());
if (this.imageDefaultSize.width === windowSizeManager.get().width) {
this.imageDefaultSize = this.calcImageDefaultSize(this.imageWHRatio, this.windowSizeManager.get());
if (this.imageDefaultSize.width === this.windowSizeManager.get().width) {
this.fitWH = "width";
} else {
this.fitWH = "height";
}
this.imageScaleInfo.maxScaleValue += this.fitWH === "width" ?
(windowSizeManager.get().height / this.imageDefaultSize.height) :
(windowSizeManager.get().width / this.imageDefaultSize.width);
(this.windowSizeManager.get().height / this.imageDefaultSize.height) :
(this.windowSizeManager.get().width / this.imageDefaultSize.width);
}).catch((err: BusinessError) => {
console.error(`[error][getImageInfo]${err.message}`);
});
... ... @@ -275,7 +275,7 @@ export struct MultiPictureDetailItemComponent {
// 已经是缩小状态,双击放大
fn = () => {
this.isEnableSwipe = false;
const ratio: number = this.calcFitScaleRatio(this.imageDefaultSize, windowSizeManager.get());
const ratio: number = this.calcFitScaleRatio(this.imageDefaultSize, this.windowSizeManager.get());
this.imageScaleInfo.scaleValue = ratio;
this.imageOffsetInfo.reset();
this.matrix = matrix4.identity().scale({
... ...
import { window } from '@kit.ArkUI';
import { common } from '@kit.AbilityKit';
class WindowSizeManager {
export class WindowSizeManager {
private size: window.Size = { width: 0, height: 0 };
// 获取UIAbility上下文
private context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext
constructor() {
window.getLastWindow(getContext()).then((value: window.Window) => {
window.getLastWindow(this.context).then((value: window.Window) => {
const rect: window.Rect = value.getWindowProperties().windowRect;
this.size.width = px2vp(rect.width);
this.size.height = px2vp(rect.height);
console.log(`[windowWidth]${this.size.width} [windowHeight]${this.size.height}`);
// console.log('MultiPictureDetailItemComponent', `[windowWidth]${this.size.width} [windowHeight]${this.size.height}`);
})
}
get(): window.Size {
return this.size;
}
}
export const windowSizeManager: WindowSizeManager = new WindowSizeManager();
\ No newline at end of file
}
\ No newline at end of file
... ...