HarmonyOS鸿蒙Next中说一下background,backgroundColor,backgroundImage的用法

HarmonyOS鸿蒙Next中说一下background,backgroundColor,backgroundImage的用法

@Entry
@Component
struct Index {
  build() {
    Column() {
    }
    .width("100%")
    .height("100%")
    .background(Color.Pink)
    .backgroundColor(Color.Blue)
    .backgroundImage($r('app.media.bg_fish'))

  }
}

在模拟器中cke_1294.png在真机中cke_4138.jpeg 有很明显的区别,


更多关于HarmonyOS鸿蒙Next中说一下background,backgroundColor,backgroundImage的用法的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

其实没有区别,模拟器的前置摄像头挖孔区域有安全区避让,在真机中也会避让上方的状态栏和底部的导航条,把沉浸式开启就好了。

更多关于HarmonyOS鸿蒙Next中说一下background,backgroundColor,backgroundImage的用法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


那为啥我直接用

@Entry
@Component
struct Index {
  build() {
    Column() {
    }
    .width("100%")
    .height("100%")
    .background(Color.Pink)
    //.backgroundColor(Color.Blue)
   // .backgroundImage($r('app.media.bg_fish'))
  }
}

在真机中式空白的而在模拟器中是粉红的,

在HarmonyOS鸿蒙Next中,background属性用于设置组件的背景样式,可统一配置背景颜色和图像。backgroundColor用于定义纯色背景,接受颜色值如’#FF0000’或’red’。backgroundImage用于设置背景图像,支持本地资源路径,例如’common/image.png’。这些属性可通过ArkTS声明式语法在组件中直接应用,实现灵活的背景定制。

在HarmonyOS Next中,backgroundbackgroundColorbackgroundImage 的优先级规则如下:

  1. background 是复合属性,可同时设置颜色和图片,但会覆盖其他单独设置的背景属性
  2. 当同时设置多个背景属性时,后设置的属性会覆盖先设置的属性
  3. 在您的代码中:
    • .background(Color.Pink) 设置了粉色背景
    • .backgroundColor(Color.Blue) 试图设置蓝色背景,但被后面的背景图片覆盖
    • .backgroundImage($r('app.media.bg_fish')) 最终生效,显示图片背景

模拟器和真机显示差异可能是由于:

  • 资源文件适配问题
  • 设备分辨率差异导致图片拉伸方式不同
  • 渲染引擎的细微差别

建议检查图片资源的多种分辨率版本,并使用 backgroundImageSize 明确设置图片适配模式。

回到顶部