【综合案例】使用DevEco Studio编写京东登录界面

news2024/11/26 21:51:19

效果展示

模块拆分

  1. 布局容器 + 顶部 + Logo
  2. 输入框+登录区域
  3. 底部模块区域

知识点

  1. 复选框 Checkbox
  2. 一段文本多个样式:Text 包裹 Span
  3. Row 或 Column 空白区域填充:Blank
  4. 线性渐变背景:
    .linearGradient({
          angle: 135, // 设置颜色渐变起始角度为顺时针方向45°
          colors: [
            [0xceeff2, 0.0],
            [0xf2e0de, 0.4],
            [0xFFFFFF, 0.8],
          ]
        })

代码展示

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    Column() {
      // 顶部区域
      Row() {
        Image($r("app.media.close"))
          .width(20)
          .fillColor("#999")
        Text("帮助")
          .fontWeight(600)
          .fontColor("#999")
      }
      .width("100%")
      .justifyContent(FlexAlign.SpaceBetween)

      //logo部分
      Image($r("app.media.jd_logo"))
        .fillColor("#fff")
        .width(250)
        .height(250)
      // 国家/地址部分
      Row() {
        Text('国家/地址')
          .fontColor("#666")
          .layoutWeight(1)
        Text("中国(+86)")
          .fontColor("#666")
          .layoutWeight(1)
          .textAlign(TextAlign.End)
        Image($r("app.media.right"))
          .width(20)
          .fillColor("#999")
      }
      .margin({
        bottom: 20
      })
      .width('100%')
      .height(40)
      .width("100%")
      .padding({
        left: 15,
        right: 10
      })
      .backgroundColor("#fff")
      .borderRadius(20)

      // 文本框部分
      TextInput({ placeholder: "请输入手机号" })
        .height(40)
        .borderRadius(20)
        .placeholderColor("#666")
        .backgroundColor("#fff")
      // 协议部分
      Row() {
        Checkbox()
          .width(10)
          .margin({ top: 7 })
        // 如果一段文本中,有样式需要单独设置,可以使用text包裹span
        Text() {
          Span("我已阅读并同意")
          Span("《京东隐私政策》")
            .fontColor("#4E81E9")
          Span("《京东用户服务协议》")
            .fontColor("#4E81E9")
          Span("未注册的手机号将自动创建京东账号")
        }
        .fontSize(12)
        .lineHeight(20)
        .fontColor("#666")
      }
      .alignItems(VerticalAlign.Top)
      .margin({
        top: 20,
        bottom: 25
      })
      .width("100%")

      // 登录部分
      Button("登录")
        .width("100%")
        .backgroundColor("#C02838")
      Row({ space: 25 }) {
        Text("新用户注册")
          .fontSize(13)
          .fontColor("#666")
        Text("账号密码登录")
          .fontSize(13)
          .fontColor("#666")
        Text("无法登录")
          .fontSize(13)
          .fontColor("#666")
      }
      .margin({
        top: 15
      })

      // 填充组件作用:填充空白区域【自适应】
      Blank()
      // 其他登录方式
      Column() {
        Text("其他登录方式")
          .height(22)
          .fontSize("14")
          .fontColor("#666")
          .margin({
            bottom: 20
          })
        Row() {
          Image($r("app.media.jd_huawei"))
            .width(35)
          Image($r("app.media.jd_wechat"))
            .width(35)
            .fillColor("#56a44a")
          Image($r("app.media.jd_weibo"))
            .width(35)
            .fillColor("#C02838")
          Image($r("app.media.jd_QQ"))
            .width(35)
            .fillColor("#1296db")
        }
        .margin({
          bottom: 30
        })
        .width("100%")
        .justifyContent(FlexAlign.SpaceAround)
      }
    }
    .padding(20)
    .width("100%")
    .height("100%")
    .linearGradient({
      angle: 135, // 设置颜色渐变起始角度为顺时针方向45°
      colors: [
        [0xceeff2, 0.0],
        [0xf2e0de, 0.4],
        [0xFFFFFF, 0.8],
      ]
    })
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962174.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BUGKU-WEB-文件包含

解题思路 你说啥我就干啥:点击一下试试你会想到PHP伪协议这方面去嘛,你有这方面的知识储备吗?看到?fileXXX.php,那不就是典型的文件包含吗?这里需要用的一个伪协议php://filter:是一种元封装器, 设计用于…

Python学习计划——7.2数据可视化

数据可视化是数据分析的重要组成部分,通过图表和图形将数据直观地展示出来,帮助我们发现数据中的模式和趋势。Python中常用的数据可视化库有matplotlib和seaborn。以下是对这些库的详细讲解及可运行的Python案例。 1. matplotlib 库 matplotlib 是一个…

RuntimeError: TensorRT currently only builds wheels for x86_64 processors

jetson 板卡似乎不能直接使用pip安装tensorrt,可以通过以下方式进行安装 在官网下载对应的tensorrt包 Log in | NVIDIA Developer 在包里面有python库 pip install 对应python版本的库 安装完成之后在终端 import tensorrt 测试是否安装成功

ubuntu 查找文件find

find -name xxx 查找当前路径下名字为xxx的文件 find . -name xxx 查找当前路径下名字为 train_logs的文件 find . -name train_logs 具体说明 【Ubuntu】find命令_ubuntu find命令-CSDN博客 其中,路径 指定要搜索的目录路径,而 表达式 用于指定匹配条…

单片机外围设备-TFTLCD

stm32f103zet6的fsmc接口实现 8080 时序驱动tftlcd显示,驱动IC是ILI9341。 1、什么是FSMC? FSMC (flexible static memory controller)灵活的静态存储控制器,可以驱动SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器。 1、1fsmc框图 1、2fsmc外部设…

18万就能买华为智驾车,你当不了韭菜!

文 | AUTO芯球 作者 | 雷慢 万万没想到啊, 把智能驾驶汽车价格打到最低的, 居然是智驾实力最强的华为, 这你敢信吗 就现在,17.99万就能买华为智驾的车了, 它就是长安和华为合作的首个车型, 深蓝S07…

Python酷库之旅-第三方库Pandas(055)

目录 一、用法精讲 206、pandas.Series.reset_index方法 206-1、语法 206-2、参数 206-3、功能 206-4、返回值 206-5、说明 206-6、用法 206-6-1、数据准备 206-6-2、代码示例 206-6-3、结果输出 207、pandas.Series.sample方法 207-1、语法 207-2、参数 207-3、…

【Python学习手册(第四版)】学习笔记09.1-Python对象类型-元组

个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 目录 元组 元组操作 实际应用 元组的特殊语法:逗号和圆括号 转换、方法以及不可变性 index、count及其他方法 有了列表为什么还要元组 元组 元…

可视化目标检测算法推理部署(二)YOLOv8模型图像推理

在先前的RT-DETR中,博主使用ONNX模型文件进行了视频、图像的推理,在本章节,博主打算使用YOLOv8模型进行推理,因此,我们除了需要获取YOLOv8的ONNX模型文件外,还需要进行一些额外的操作,如NMS后处…

PHP在线加密系统源码

历时半年,它再一次迎来更新[飘过] 刚刚发的那个有点问题,重新修了一下 本次更新内容有点多 1. 更新加密算法(这应该是最后一次更新加密算法了,以后主要更新都在框架功能上面了) 2. 适配php56-php74 3. 取消批量加…

【机器学习西瓜书学习笔记——神经网络】

机器学习西瓜书学习笔记【第四章】 第五章 神经网络5.1神经元模型5.2 感知机与多层网络学习感知机学习率成本/损失函数梯度下降 5.3 BP神经网络(误差逆传播)5.4 全局最小与局部极小5.5 其他常见神经网络RBF网络RBF 与 BP 最重要的区别 ART网络 第五章 神…

【Linux】进程间通信 —— 管道与 System V 版本通信方式

目录 为什么有进程间通信?进程间通信的目的是什么? 管道 匿名管道 父子进程共享管道 命名管道 共享内存 概念 原理 共享内存和内存映射(文件映射)的区别 使用 消息队列 概念 使用 信号量 概念 使用 IPCS 命令 S…

【人工智能专栏】Cross Entropy 交叉熵损失解析

Cross Entropy 交叉熵 信息熵 在信息世界中我们所有的信息都可以抽象为“情况”,用二进制 bit 来表达,正因为每个 bit 都有 0 1 两种“情况”,所以 n n n 个 bit 可以编码 2 n 2^n 2

Java----代理

什么是代理? 在Java中,代理是一种用于创建一个或多个服务的中间层,它可以拦截并处理程序对实际服务对象的请求。代理模式是一种设计模式,属于结构型模式,它允许程序员在不修改实际对象代码的情况下,增强或控…

PHP反序列化漏洞从入门到深入8k图文介绍,以及phar伪协议的利用

文章参考:w肝了两天!PHP反序列化漏洞从入门到深入8k图文介绍,以及phar伪协议的利用 前言 本文内容主要分为三个部分:原理详解、漏洞练习和防御方法。这是一篇针对PHP反序列化入门者的手把手教学文章,特别适合刚接触PH…

杭州等保测评的备案流程

杭州等级保护备案和测评,构筑了一座坚实的数字安全桥梁,其过程和条件清楚而又重要。这篇文章会详细介绍一些必要的步骤,以帮助你顺利地完成信息系统的安全和合规。 1. 系统识别与自评 在此基础上,首先要明确信息系统所承载的业务…

Zabbix配置监控参考

1 添加host 配置-主机-创建主机 添加主机名,IP,端口 2 添加监控项 配置-主机-监控项 打开后,点击右上角添加监控项(进去后。配置想要的监控项目) 3 添加CPU监控项 需求:CPU使用率 实现&#xff1…

【基础篇】Docker 容器操作 FOUR

嘿,小伙伴们!我是小竹笋,一名热爱创作的工程师。在上一篇文章中,我们探讨了 Docker 镜像管理的相关知识。今天,让我们一起深入了解一下 Docker 容器的操作吧! 📦 运行、停止和删除容器 Docker…

归并排序 python C C++ 代码及解析

一,概念及其介绍 归并排序(Merge sort)是建立在归并操作上的一种有效、稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列&#xff…

商家转账到零钱开通最快捷径

商家转账到零钱存在一定的捷径,这一捷径将放在文章最后。如果商家希望自行开通,可以按照以下步骤进行申请: 1. 确认主体资格:申请主体必须是公司性质(有限公司类型),个体工商户暂不支持申请&…