鸿蒙移动应用开发--UI组件布局
实验要求:
制作一个B站视频卡片界面,大致如下图所示,要求应用到线性布局、层叠布局等相关课堂知识。背景图、logo及文本内容不限。

实验环境 :DevEco Studio
实验过程:
步骤1:创建项目
1. 在您的开发环境中创建一个新的项目。
2. 确保项目中包含必要的资源文件,如背景图、logo图等。
步骤2:设计界面布局
1. 主布局:使用`Column`组件创建一个垂直布局,作为整个视频卡片的容器。
2. 背景图:在`Column`内部,使用`Stack`组件叠加背景图和其他元素。
- 使用`Image`组件加载背景图,并设置圆角。
- 使用`Row`组件在背景图上添加播放次数、弹幕数和视频时长等信息。
3. 标题和描述:在背景图下方,使用`Column`组件添加视频标题和描述。
- 使用`Text`组件显示标题和描述,设置字体大小、行高和文本溢出处理。
- 使用`Row`组件添加点赞数和设置图标。
步骤3:实现样式和布局
1. 背景图样式:
- 设置背景图的宽度和高度,使其适应卡片容器。
- 设置背景图的圆角和边框样式。
2. 信息行样式:
- 使用`Row`组件创建一个水平布局,包含播放次数、弹幕数和视频时长。
- 设置每个元素的间距、颜色和字体大小。
3. 标题和描述样式:
- 设置标题的字体大小、行高和文本溢出处理,使其在两行内显示。
- 设置描述的字体大小和颜色。
4. 点赞数和设置图标样式:
- 设置点赞数的背景颜色、边框圆角和内边距。
- 设置设置图标的宽度。
步骤4:调整和优化
1. 根据需要调整各个组件的大小、位置和样式,确保界面美观且信息清晰。
2. 测试界面在不同设备和分辨率下的显示效果,进行必要的调整。
源代码:
@Entry
@Component
struct Index {build() {Column() {Column(){Stack({alignContent: Alignment.Bottom}){Image($r('app.media.bg')).borderRadius({topLeft:10,topRight:10})Row(){Row({space: 5}){Image($r('app.media.bf')).width(19).fillColor(Color.White)Text('288万').fontSize(12).fontColor(Color.White)}.margin({right: 10})Row({space: 5}){Image($r('app.media.dm')).width(19).fillColor(Color.White)Text('219').fontSize(12).fontColor(Color.White)}Blank()Text('4:33').fontSize(12).fontColor(Color.White)}.height(24).padding({left:5,right:5}).width('100%')//.backgroundColor(Color.Black)}.width('100%').height(125)//.backgroundColor(Color.Blue)Column(){Text('“我本长生不老客,怎渡中途短命人”|齐天大圣的一世【2025bilibili混剪大赛】').fontSize(13).lineHeight(16).textOverflow({overflow: TextOverflow.Ellipsis}).maxLines(2)Row(){Text('19万点赞').fontSize(10).fontColor('#e66c43').backgroundColor('#fef0ef').padding(5).borderRadius(2)Image($r('app.media.setting')).width(7)}.margin({top:6}).width('100%').justifyContent(FlexAlign.SpaceBetween)}.padding(5)}.width(200).height(200).backgroundColor(Color.White).borderRadius(10).margin({top:10})}.width('100%').height('100%').backgroundColor('#ccc')}
}
运行截图:

相关文章:
鸿蒙移动应用开发--UI组件布局
实验要求: 制作一个B站视频卡片界面,大致如下图所示,要求应用到线性布局、层叠布局等相关课堂知识。背景图、logo及文本内容不限。 实验环境 :DevEco Studio 实验过程: 步骤1:创建项目 1. 在您的开发环境…...
内核编程十二:打印内核态进程的属性
在Linux内核中,current 是一个宏,用于获取当前正在执行的进程的 task_struct 结构体指针。current 宏返回一个指向当前正在运行的进程的 task_struct 结构体的指针。通过这个指针,内核代码可以访问和修改当前进程的各种属性和状态。 打印单个…...
C++(16)—类和对象(下) ①再探构造函数
文章目录 一、构造函数初始化方式回顾二、初始化列表详解1. 初始化列表语法与特点2. 必须使用初始化列表的成员变量 三、初始化列表的底层机制四、最佳实践五、总结 一、构造函数初始化方式回顾 在C中,构造函数用于初始化对象的成员变量。传统的初始化方式是在构造…...
[新闻.AI]国产大模型新突破:阿里开源 Qwen2.5-VL-32B 与 DeepSeek 升级 V3 模型
(本文借助 Deepseek-R1 协助生成) 在2025年3月24日至25日的短短24小时内,中国AI领域迎来两大重磅开源更新:阿里通义千问团队发布多模态大模型Qwen2.5-VL-32B-Instruct,而DeepSeek则推出编程能力大幅提升的DeepSeek-V3…...
投sci论文自己查重方法
首先进入查重网站科研者之家-Home of Reasearchers 会看到里面有很多小工具(比较高级的是要付费的) 我们找到论文查重的小工具:论文查重——>英文论文自助查重系统 把论文上传...
数值分析作业插值法2
埃尔米特插值 不仅要求函数值重合,而且要求若干阶导数也重合,这种插值问题称为埃尔米特插值问题。 低次埃尔米特插值多项式 二点三次埃尔米特插值多项式 **问题描述:**给定区间 [ x 0 , x 1 ] [x_0, x_1] [x0,x1] 两端点的函数值与导数…...
宝塔docker flarum默认登录账号密码,crazymax/flarum镜像默认登录账号密码
docker flarum默认账号密码 刚创建完毕时的登录账号和密码都是flarum 来源说明 宝塔安装的这个1.8.5版本的docker flarum的版本是,用的是 Docker库 https://hub.docker.com/r/crazymax/flarum Github库 https://github.com/crazy-max/docker-flarum...
TailwindCSS安装教程(PostCSS)
#官方教程简直是一坨,自己跑ai查文章做出来的安装总结,作者开发环境为Vue2VueCLI# 本文为TailwindCSS3.4版本安装教程 1,安装tailwindcss3.4.1 npm install -D tailwindcss3.4.1 2, 初始化TailwindCSS配置文件 npx tailwindcss init 3&…...
电脑干货:万能驱动--EasyDrv8
目录 万能驱动EasyDrv8 功能介绍 主程序界面 驱动解压与安装 PE环境支持 系统部署环境 桌面环境一键解决方案 万能驱动8电脑版是由IT天空出品的一款智能识别电脑硬件并自动安装驱动的工具,一般又称为it天空万能驱动,万能驱动vip版,简称…...
基于Flask的通用登录注册模块,并代理跳转到目标网址
实现了用户密码的加密,代理跳转到目标网址,不会暴露目标路径,未登录的情况下访问proxy则自动跳转到登录页,使用时需要修改配置项config,登录注册页面背景快速修改,可以实现登录注册模块的快速复用。 1.app…...
个人学习编程(3-25) leetcode刷题
验证括号字符串: 用了两个栈来存放。 只需要考虑) 优先用 ( 其次用* 即可 #include <bits/stdc.h> using namespace std;bool checkValidString(char* s){int len strlen(s);stack<int> left_stack,star_stack;for (int i 0; i < len; i){if(s[i] (){left_st…...
vue中实现元素在界面中自由拖动
这是一个使用 Vue 2 实现可拖动 div 的示例。 <!DOCTYPE html> <html> <head><title>Vue 2 可拖动 Div</title><script src"https://cdn.jsdelivr.net/npm/vue2.6.14/dist/vue.js"></script><style>#draggable-div…...
量子计算在密码学中的应用:机遇与挑战并存
引言 在数字化时代的浪潮中,密码学作为信息安全的核心技术,始终扮演着至关重要的角色。从保护个人隐私到保障国家机密,密码学的每一次进步都为信息安全筑牢了防线。然而,随着量子计算技术的飞速发展,传统密码学体系面…...
使用go实现导入Rxcel数据到数据库并渲染到页面上
github.com/360EntSecGroup-Skylar/excelize github.com/tealeg/xlsx 可以使用以上两个库 代码如下: // jsonResult 返回 JSON 格式的结果 func (c *TemplateController) jsonResult(code int, msg string, data interface{}) {c.Data["json"] map[s…...
C++中将记录集的数据复制到Excel工作表中的CRange类CopyFromRecordset函数异常怎么捕获
文章目录 一、异常类型及捕获逻辑二、完整代码示例三、关键错误场景与解决方案1. CopyFromRecordset 返回空数据2. COM错误 0x800A03EC3. Excel进程残留4. 内存不足 四、调试与日志记录1. 启用详细日志2. 捕获错误描述3. 调试断点 五、最佳实践 在C中使用 CRange::CopyFromReco…...
使用vector构造杨辉三角形
力扣118题: 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1…...
conda环境下解决gitk乱码模糊
关键词 conda、git、gitk、git gui、模糊、linux、乱码 现象 操作系统:ubuntu24.04 conda版本:25.1.1 正常的终端里gitk显示不会模糊 但是在conda创建的python虚拟环境中使用gitk,字体开始变得模糊不清 分析 根据deepseek的原因原因分析…...
Contactile三轴触觉传感器:多维力感赋能机器人抓取
在非结构化环境中,机器人对物体的精准抓取与操作始终面临巨大挑战。传统传感器因无法全面感知触觉参数(如三维力、位移、摩擦),难以适应复杂多变的场景。Contactile推出的三轴触觉力传感器,通过仿生设计与创新光学技术…...
远程登录服务(ssh)
一、远程登录服务概述 1. 概念 远程登录服务就像是一个神奇的桥梁,它让你能够跨越物理距离,通过网络连接到另一台计算机上进行操作。无论你身在何处,只要有网络连接,你就可以像坐在目标计算机前一样进行各种操作。 2. 功能 分享…...
如何在阿里云linux主机上部署Node.Js
在阿里云的Linux服务器上搭建Node.js编程环境可以通过以下步骤完成。这里以常见的 Ubuntu/CentOS 系统为例,提供两种安装方式(包管理器、NVM多版本管理): 一、通过包管理器安装(适合快速安装指定版本) 1. …...
VS Code连接远程服务遇到的问题
目录 一、VS Code链接远程服务 二、修改的文件不能保存 三、无法与 "Ip地址" 建立连接: 远程主机密钥已更改,端口转发已禁用. 四、解决远程连接后,每次断开让输入密码问题,实现免密登录 没有秘钥对,免密配置流程&a…...
算法学习第十六天:动态规划(补充题目)
动态规划题 目录 最大乘积子数组股票买卖问题最长递增子序列零钱兑换编辑距离 最大乘积子数组 问题描述 给定一个整数数组,求乘积最大的连续子数组的乘积。 关键点 需要同时记录当前最大值和最小值(负负得正)状态转移方程: …...
最长连续子序列和的所含元素 -- Kadane算法拓展
建议先回顾经典Kadane算法 -- 最长连续子序列和: 最大连续子序列和(动态规划 -- 经典Kadane算法)-CSDN博客 拓展代码: def max_subarray_sum(nums):global_max current_max nums[0]left right temp 0for i in range(1, len(…...
大模型训练 | 智能体知识库 资源收集之心理咨询问答数据集
最近我一直在研究AI大模型相关的内容,想着从现在开始慢慢收集各种各样的资源,万一以后需要训练大模型的时候可以用到,或者自己以后也许会需要。今天我想介绍一组“心理咨询问答数据集”产品,包含9414条心理咨询问答数据࿰…...
AI Agent开发大全第十一课-超维空间里的语义翻译官:Embedding技术
一、Embedding:数字世界的"翻译官"与"导航仪" 1.1 从字符到向量的魔法 当我们输入"巧克力"三个字时,传统计算机只能识别ASCII码组成的符号序列,而Embedding技术就像给每个词语配备了"超维定位坐标"。通过深度学习模型,它将离散的…...
2024年第九届全国固态电池研讨会(脱敏)PPT合集(41份).zip
2024年第九届全国固态电池研讨会(脱敏)PPT合集,共41份。供大家参考学习。 1、锂金属全固态电池关键材料与器件.pdf 2、聚醚基聚合物锂金属电池.pdf 3、氧化物固态电解质与高能量密度安全固态锂电池.pdf 4、复合固态电解质界面设计工艺探索与…...
OpenCV三维解算常用方法C++
如果标定过程是通过OpenCV张正友标定法实现的,得到的内参外参保存在.txt文件中是这样的形式: ① 内参intrinsics.txt: ② 外参extrinsics.txt: 那么可以通过如下方法读取.txt文件获取左右相机内外参,主要包括三维解算…...
JavaScript 类型转换:全面解析与实践
引言 在 JavaScript 编程里,类型转换是一个频繁出现且极为重要的操作。由于 JavaScript 是一种动态类型语言,变量的类型在运行时可以改变,这就使得类型转换变得十分常见。类型转换主要分为隐式类型转换和显式类型转换,下面将详细…...
Qt Concurrent Filter and Filter-Reduce
并行滤波和滤波-还原 QtConcurrent::filter()、QtConcurrent::filtered() 和 QtConcurrent::filedReduced() 函数并行过滤序列中的项目,如QList 。QtConcurrent::filter() 就地修改序列,QtConcurrent::filtered() 返回包含过滤内容的新序列,…...
【蓝桥杯每日一题】3.25
🏝️专栏: 【蓝桥杯备篇】 🌅主页: f狐o狸x “OJ超时不是终点,是算法在提醒你该优化时间复杂度了!” 目录 3.25 差分数组 一、一维差分 题目链接: 题目描述: 解题思路:…...
