13.细解鸿蒙之元服务UX上架标准-离手减速动效一致性

142 阅读4分钟

细解鸿蒙之元服务UX上架标准-离手减速动效一致性

是否必须遵守:必须

标准项描述:

在应用程序的交互设计中,离手减速动效是指当用户手指离开屏幕或触摸设备表面时,动效的速度逐渐减慢并最终停止的过程。离手减速动效检查则是对这一过程进行全面、细致的审查,以确保动效的合理性、流畅性以及符合用户体验。

动效检查的具体内容

动效速度:检查动效的速度是否合理。当手指离开屏幕时,动效速度应该逐渐减慢,并且这种速度变化应该符合用户的预期。例如,在一个滑动屏幕的动效中,手指离开屏幕后,动效速度应该逐渐减慢,使屏幕停止在一个合适的位置。如果动效速度过快或过慢,可能会导致用户感觉不自然或难以控制。
减速曲线:动效减速曲线决定了动效速度变化的方式。检查动效减速曲线是否平滑、自然,是否符合物理规律。例如,在一个模拟物体运动的动效中,动效减速曲线应该模拟物体在自然环境中的减速过程,如摩擦力、空气阻力等。如果动效减速曲线过于生硬或不自然,可能会影响动效的真实性和用户体验。
动效时间:动效的时间长短也是检查的重要内容。动效时间应该根据动效的类型和场景来确定,确保动效能够在合理的时间内完成减速过程。例如,在一个快速滑动屏幕的动效中,动效时间应该相对较短,以快速停止屏幕运动;而在一个缓慢滑动屏幕的动效中,动效时间应该相对较长,以实现平滑的减速过程。
动效响应:检查动效对用户操作的响应是否及时。当用户手指离开屏幕时,动效应该立即开始减速,并根据用户的操作进行相应的调整。例如,在一个触摸屏幕的动效中,动效应该能够准确地响应用户的触摸操作,及时调整动效速度和方向。
动效稳定性:动效的稳定性也是检查的重要方面。动效应该在整个减速过程中保持稳定,避免出现抖动或波动。例如,在一个动效中,动效的速度应该保持稳定,不会出现突然的变化或抖动。

动效检查的方法

手动测试:开发人员手动操作应用,观察动效的减速过程。在操作过程中,注意动效的速度、减速曲线、动效时间等方面的变化,并根据实际情况进行调整。
模拟测试:使用模拟工具或软件来模拟动效的减速过程。通过模拟测试,可以更准确地观察动效的速度变化和动效时间,并根据测试结果进行调整。
数据分析:通过对动效数据进行分析,了解动效的速度、减速曲线、动效时间等方面的变化。例如,通过分析动效数据,可以发现动效速度变化的规律,并根据这些规律进行调整。
用户反馈:收集用户对动效减速过程的反馈,了解用户的感受和需求。根据用户反馈来调整动效的速度、减速曲线、动效时间等方面的变化,提高用户体验。

动效检查的意义
离手减速动效检查对于提高应用程序的用户体验具有重要意义。通过检查动效的速度、减速曲线、动效时间等方面的变化,可以确保动效的合理性、流畅性以及符合用户体验。同时,动效检查还可以发现动效存在的问题和不足,及时进行调整和优化,提高应用程序的质量和性能。 --javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown


// 从 @kit.ArkUI 库中导入 curves 模块
import { curves } from '@kit.ArkUI'

// 标记为入口组件
@Entry
// 声明为组件
@Component
struct ImageComponent {
  // 存储宽度的状态变量,初始值为 200
  @State widthSize: number = 200;
  // 存储高度的状态变量,初始值为 200
  @State heightSize: number = 200;

  build() {
    // 创建一个 Column 组件
    Column() {
      // 创建一个 Text 组件
      Text()
      .margin({ top: 100 })
      .width(this.widthSize)
      .height(this.heightSize)
      .backgroundColor(Color.Red)
      .onClick(() => {
          // 创建一个三次贝塞尔曲线对象
          let curve = curves.cubicBezierCurve(0.25, 0.1, 0.25, 1.0);
          // 根据曲线在 0.5 处的值更新宽度
          this.widthSize = curve.interpolate(0.5) * this.widthSize;
          // 根据曲线在 0.5 处的值更新高度
          this.heightSize = curve.interpolate(0.5) * this.heightSize;
        })
       // 为 Text 组件添加动画,持续时间为 2000 毫秒,使用 steps 曲线
      .animation({ duration: 2000, curve: curves.stepsCurve(9, true) })
    }
    // 设置 Column 组件的宽度为 100%
 .width("100%").height("100%")
  }
}

PS:实际项目中如有出入,请告知博主,博主会第一时间修改得哇~