HarmonyOS Canvas横屏后定位问题

使用如下代码:

Canvas(this.context2D)
  .backgroundColor(Color.Transparent)
  .onReady(() => {
    this.context2D.fillStyle = Color.Red
    this.context2D.fillRect(0,0,20, 20)
  })
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

竖屏在左上角(0,0)位置出现红色方块,但是横屏情况下左上角(0,0)并未出现红色方块,效果如下图。想咨询横屏后Canvas画布位置的起始在哪

HarmonyOS Canvas横屏后定位问题 -鸿蒙开发者社区

HarmonyOS Canvas横屏后定位问题 -鸿蒙开发者社区

HarmonyOS
2025-01-09 15:04:33
1.0w浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

示例参考如下:

Canvas根据父节点布局测算的,可以给Canvas设置height和width,也可使用layoutWeight占满

@Entry
@Component
struct Index {
  private settings: RenderingContextSettings = new RenderingContextSettings(true)
  private context2D: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)

  build() {
    Column() {
      Text("Title")
        .height(40)
        .width('100%')
        .textAlign(TextAlign.Center)
      Canvas(this.context2D)
        .backgroundColor(Color.Transparent)
        .layoutWeight(1)
        .onReady(() => {
          this.context2D.fillStyle = Color.Red
          this.context2D.fillRect(0, 0, this.context2D.width, this.context2D.height)
          this.context2D.clearRect(10, 10, this.context2D.width - 20, this.context2D.height - 20)
        })
    }
    .width('100%').height('100%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
分享
微博
QQ
微信
回复
2025-01-09 17:41:51


相关问题
HarmonyOS 布局问题
1320浏览 • 1回复 待解决
HarmonyOS 播放问题
1484浏览 • 1回复 待解决
Web如何实现全屏
260浏览 • 0回复 待解决
HarmonyOS 相机旋转拍照问题
1087浏览 • 1回复 待解决
HarmonyOS webView视频展示
877浏览 • 1回复 待解决
HarmonyOS video如何播放?
1097浏览 • 1回复 待解决
HarmonyOS 查询当前状态是还是竖
1224浏览 • 1回复 待解决
HarmonyOS 如何让app支持
1100浏览 • 1回复 待解决
openharmony jsFA 如何显示?
8162浏览 • 1回复 待解决
如何获取当前是还是竖啊?
5859浏览 • 1回复 待解决
HarmonyOS 怎么设置某个 page 展示
657浏览 • 1回复 待解决
如何设置屏幕方向为
2479浏览 • 1回复 待解决