HarmonyOS 鸿蒙Next折叠屏设备图片显示问题:在适配时,折叠状态下图片显示正常,展开后图片被严重拉伸
HarmonyOS 鸿蒙Next折叠屏设备图片显示问题:在适配时,折叠状态下图片显示正常,展开后图片被严重拉伸 在适配折叠屏手机和平板时,发现在折叠状态下图片显示的是正常的,到了展开时图片被严重拉伸,试了将.9图放到工程里加载报错。这个应该怎么做适配
折叠屏相关介绍:
- 目前可参考一多实例和折叠屏设计文档
- 折叠屏设计指导文档
- 相关折叠屏状态监听接口
- Image组件当前已支持.9图,可以通过设置resizable达到图片拉伸的效果。
@Entry
@Component
struct SetSlice {
@State top: number = 0
@State bottom: number = 0
@State left: number = 0
@State right: number = 0
@State fit: ImageFit = ImageFit.Cover
// bubble3 宽472px高200px
@State w: number = px2vp(472)
@State h: number = px2vp(200)
build() {
Column({ space: 10 }) {
Stack() {
Image($r('app.media.bubble3'))
.width(this.w)
.height(this.h)
.borderRadius(4)
.resizable({
slice: {
top: this.top,
bottom: this.bottom,
left: this.left,
right: this.right
}
})
.objectFit(this.fit)
Divider().strokeWidth(1).color(Color.Red).position({ top: this.top })
Divider().strokeWidth(1).color(Color.Yellow).position({ bottom: this.bottom })
Divider().strokeWidth(1).color(Color.Blue).vertical(true).position({ left: this.left })
Divider().strokeWidth(1).color(Color.Green).vertical(true).position({ right: this.right })
}.width(this.w).height(this.h)
Stack() {
Text()
.width(this.w)
.height(this.h)
.borderRadius(4)
.backgroundImage($r('app.media.bubble3'))
.backgroundImageSize({ width: this.w, height: this.h })
.backgroundImageResizable({
slice: {
top: this.top,
bottom: this.bottom,
left: this.left,
right: this.right
}
})
Divider().strokeWidth(1).color(Color.Red).position({ top: this.top })
Divider().strokeWidth(1).color(Color.Yellow).position({ bottom: this.bottom })
Divider().strokeWidth(1).color(Color.Blue).vertical(true).position({ left: this.left })
Divider().strokeWidth(1).color(Color.Green).vertical(true).position({ right: this.right })
}.width(this.w).height(this.h)
Row() {
Button('add top to ' + this.top).fontSize(10).onClick(() => {
this.top += 2
})
Button('add bottom ' + this.bottom).fontSize(10).onClick(() => {
this.bottom += 2
})
Button('add left ' + this.left).fontSize(10).onClick(() => {
this.left += 2
})
Button('add right ' + this.right).fontSize(10).onClick(() => {
this.right += 2
})
}
Row() {
Button('reduce top to ' + this.top).fontSize(10).onClick(() => {
this.top -= 2
})
Button('reduce bottom ' + this.bottom).fontSize(10).onClick(() => {
this.bottom -= 2
})
Button('reduce left ' + this.left).fontSize(10).onClick(() => {
this.left -= 2
})
Button('reduce right ' + this.right).fontSize(10).onClick(() => {
this.right -= 2
})
}
Row() {
Button('add w' + this.w).fontSize(10).onClick(() => {
this.w += 2
})
Button('add h' + this.h).fontSize(10).onClick(() => {
this.h += 2
})
}
Row() {
Button('reduce w' + this.w).fontSize(10).onClick(() => {
this.w -= 2
})
Button('reduce h' + this.h).fontSize(10).onClick(() => {
this.h -= 2
})
}
}.width('100%').height('100%').backgroundColor(Color.Pink).padding({ top: 10 })
}
}
更多关于HarmonyOS 鸿蒙Next折叠屏设备图片显示问题:在适配时,折叠状态下图片显示正常,展开后图片被严重拉伸的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
楼主你好 我也遇到了这种情况 你解决了吗 怎么解决的
针对HarmonyOS鸿蒙Next折叠屏设备图片显示问题,即在折叠状态下图片显示正常,但展开后图片被严重拉伸的现象,这通常是由于图片资源适配不当或布局参数设置不正确所导致。
在鸿蒙系统中,折叠屏设备具有不同的屏幕比例和分辨率,因此开发者需要在应用中针对折叠屏的不同状态(折叠和展开)进行专门的适配。具体来说,可以通过以下几种方式解决:
-
使用资源适配:为折叠屏的折叠和展开状态分别准备不同尺寸的图片资源,并在代码中根据当前屏幕状态动态加载。
-
调整布局参数:在布局文件中,为图片控件设置合适的布局参数,如使用
ConstraintLayout
等灵活的布局方式,确保图片在不同屏幕尺寸下都能正确显示。 -
编程动态调整:在代码中监听屏幕状态变化事件,当屏幕状态改变时,动态调整图片控件的大小和位置,以适应新的屏幕布局。
如果以上方法仍然无法解决问题,可能是由于代码中存在其他逻辑错误或鸿蒙系统的特定限制所导致。此时,建议详细检查相关代码和文档,或参考鸿蒙系统的官方示例和最佳实践。
如果问题依旧没法解决请联系官网客服,官网地址是: https://www.itying.com/category-93-b0.html,