#鸿蒙通关秘籍#如何实现HarmonyOS边缘内容渐变效果?

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
星辰泪HDD

在HarmonyOS中实现边缘内容渐变效果可以通过以下步骤实现:

  1. 创建一个底层List页面,设置列表方向和大小,并通过overlay属性使用自定义的渐变背景:

    List({ space: Const.EXAMPLE_IMAGE_GAP }) {
      ForEach(this.textArray, () => {
        ListItem() {
          Image($r("app.media.fadingedge_example1"))
            .width($r('app.integer.fadingedge_example_image_width'))
            .height($r('app.integer.fadingedge_example_height'))
            .borderRadius($r('app.integer.fadingedge_example_image_border_radius'))
        }
      }, (item: number) => item.toString())
    }
    .listDirection(Axis.Horizontal)
    .width($r('app.string.fadingedge_fill_size'))
    .height($r('app.integer.fadingedge_list_height'))
    .overlay(this.fadingOverlay())
    .edgeEffect(EdgeEffect.None)
    .scrollBar(BarState.Off)
    
  2. 使用linearGradient创建渐变效果的遮罩层:

    @Builder
    fadingOverlay() {
      Column()
        .width($r('app.string.fadingedge_fill_size'))
        .height($r('app.integer.fadingedge_list_height'))
        .linearGradient({
          angle: Const.OVERLAY_LINEAR_GRADIENT_ANGLE,
          colors: [
            [this.linearGradientBeginColor, Const.OVERLAY_LINEAR_GRADIENT_COLOR_POS[0]],
            [Const.BEGIN_COLOR, Const.OVERLAY_LINEAR_GRADIENT_COLOR_POS[1]],
            [Const.BEGIN_COLOR, Const.OVERLAY_LINEAR_GRADIENT_COLOR_POS[2]],
            [this.linearGradientEndColor, Const.OVERLAY_LINEAR_GRADIENT_COLOR_POS[3]],
          ]
        })
        .animation({
          curve: Curve.Ease,
          duration: Const.DURATION
        })
        .hitTestBehavior(HitTestMode.Transparent)
    }
    
  3. 使用onReachStartonReachEnd接口动态调整渐变的起始与结束颜色:

    .onReachStart(() => {
      this.linearGradientBeginColor = Const.BEGIN_COLOR;
      this.linearGradientEndColor = Const.END_COLOR;
    })
    .onReachEnd(() => {
      this.linearGradientBeginColor = Const.END_COLOR;
      this.linearGradientEndColor = Const.BEGIN_COLOR;
    })
    
分享
微博
QQ
微信
回复
2天前
相关问题
如何实现组件边缘的颜色渐变
1926浏览 • 1回复 待解决
HarmonyOS 如何实现滚动渐变效果
274浏览 • 1回复 待解决
HarmonyOS 如何实现View边缘模糊的效果
315浏览 • 1回复 待解决
HarmonyOS 渐变遮罩效果如何实现
162浏览 • 1回复 待解决
如何实现顶部渐变遮罩效果
467浏览 • 1回复 待解决