【鸿蒙实现显示屏测试实现方法】

鸿蒙实现显示屏测试实现方法

一、这个程序的功能说明:

初始界面:

  • 显示"显示屏测试"标题和"开始测试"按钮

测试流程:

  • 点击"开始测试"按钮后进入全屏模式
  • 第一次点击:显示红色屏幕
  • 第二次点击:显示绿色屏幕
  • 第三次点击:显示蓝色屏幕
  • 第四次点击:弹出退出确认对话框

退出功能:

  • 显示确认对话框询问是否退出
  • 点击"确定"退出测试并返回初始界面
  • 点击"取消"继续测试

界面特性:

  • 全屏显示测试颜色
  • 显示当前测试进度
  • 友好的用户提示

这个实现使用了鸿蒙系统的window模块来控制全屏,promptAction模块来显示对话框,提供了完整的显示屏测试体验。

二、代码示例

c 复制代码
// DisplayTest.ets
import promptAction from '@ohos.promptAction';
import window from '@ohos.window';

@Entry
@Component
struct DisplayTest {
  @State currentColor: string = '#ffffff';
  @State testStep: number = 0;
  @State isFullScreen: boolean = false;

  // 颜色序列
  private colors: string[] = ['#ff0000', '#00ff00', '#0000ff'];

  // 切换全屏
  async toggleFullScreen() {
    try {
      let windowClass = await window.getLastWindow(this.context);
      if (!this.isFullScreen) {
        await windowClass.setFullScreen(true);
        this.isFullScreen = true;
      } else {
        await windowClass.setFullScreen(false);
        this.isFullScreen = false;
      }
    } catch (error) {
      console.error('切换全屏失败: ' + JSON.stringify(error));
    }
  }

  // 处理屏幕点击
  handleScreenClick() {
    if (this.testStep === 0) {
      // 开始测试,进入全屏并显示红色
      this.toggleFullScreen();
      this.currentColor = this.colors[0];
      this.testStep = 1;
    } else if (this.testStep <= this.colors.length) {
      // 切换颜色
      this.currentColor = this.colors[this.testStep - 1];
      this.testStep++;
      
      // 如果所有颜色都显示完毕,准备退出
      if (this.testStep > this.colors.length) {
        this.testStep = this.colors.length + 1;
      }
    } else {
      // 显示退出确认对话框
      this.showExitDialog();
    }
  }

  // 显示退出确认对话框
  showExitDialog() {
    promptAction.showDialog({
      title: '测试完成',
      message: '显示屏测试已完成,是否退出?',
      buttons: [
        {
          text: '取消',
          color: '#000000'
        },
        {
          text: '确定',
          color: '#007DFF'
        }
      ]
    }).then(result => {
      if (result.index === 1) {
        // 用户点击确定
        this.exitTest();
      }
    }).catch(error => {
      console.error('显示对话框失败: ' + JSON.stringify(error));
    });
  }

  // 退出测试
  exitTest() {
    this.toggleFullScreen();
    this.testStep = 0;
    this.currentColor = '#ffffff';
  }

  build() {
    Column() {
      if (this.testStep === 0) {
        // 开始测试页面
        Column() {
          Text('显示屏测试')
            .fontSize(30)
            .fontWeight(FontWeight.Bold)
            .margin({ bottom: 50 })

          Button('开始测试')
            .width(200)
            .height(60)
            .fontSize(20)
            .backgroundColor('#007DFF')
            .onClick(() => {
              this.handleScreenClick();
            })
        }
        .width('100%')
        .height('100%')
        .justifyContent(FlexAlign.Center)
        .alignItems(HorizontalAlign.Center)
      } else {
        // 全屏测试页面
        Column() {
          // 显示当前测试步骤
          if (this.testStep <= this.colors.length) {
            Text(`测试颜色 ${this.testStep}/${this.colors.length}`)
              .fontSize(20)
              .fontColor('#ffffff')
              .margin({ top: 50 })
          } else {
            Text('点击屏幕退出测试')
              .fontSize(20)
              .fontColor('#ffffff')
              .margin({ top: 50 })
          }
        }
        .width('100%')
        .height('100%')
        .backgroundColor(this.currentColor)
        .justifyContent(FlexAlign.Start)
        .alignItems(HorizontalAlign.Center)
        .onClick(() => {
          this.handleScreenClick();
        })
      }
    }
    .width('100%')
    .height('100%')
  }
}
相关推荐
行者-全栈开发2 分钟前
华为云码道 CodeArts 实测:让 AI 独立开发一个鸿蒙原生专注计时应用「刻循」
harmonyos·arkts·鸿蒙·ai 编程·华为云码道·codearts 代码智能体·专注计时
resh_people4 分钟前
开源鸿蒙平台 KMP/CMP 三方库「kotlinx-datetime」适配全流程
华为·开源·harmonyos
威哥爱编程14 小时前
HarmonyOS 7 自由多窗实战:supportWindowMode + 断点布局,大屏多任务主动接管
harmonyos·arkts
威哥爱编程14 小时前
HarmonyOS 7 应用接续实战:continuable + onContinue 跨设备无缝流转,手机编辑平板接着搞
harmonyos·arkts
威哥爱编程14 小时前
HarmonyOS 7 视觉 AI 进阶实战:人脸检测 + 通用文字识别(OCR)两步接入
harmonyos
李游Leo21 小时前
HarmonyOS 7 API 26 升级适配实战:API Change Assistant、targetSDKVersion 与兼容性回归
harmonyos
OH_TPC1 天前
HarmonyOS APP开发---"智泊"智能停车App,需要用到这个库
harmonyos
用户117910488331 天前
AI粘贴多行需求为什么会误执行?hmharness安全粘贴拆解 GitHub:swsgbl/hmharness
ai编程·harmonyos
用户0934077735141 天前
HarmonyOS WPS Open SDK 实践:从 HAR 集成到 OpenFileRequest 最小闭环
typescript·harmonyos
威哥爱编程1 天前
HarmonyOS 7 Fast Kit 算法加速实战:四大核心能力,把算力从系统里"借"出来
harmonyos·arkts