OUC26夏移动软件开发-实验1

发布时间:2026/10/28 11:41:04

OUC26夏移动软件开发-实验1 OUC26夏移动软件开发-实验1姓名马一诺 学号项目内容姓名和学号马一诺本实验属于哪门课程中国海洋大学26夏《移动软件开发》实验名称实验1热身运动GitHub源码链接https://github.com/1-qaz-2-wsx/ouc26-mobile-dev/tree/main/lab1博客链接https://blog.csdn.net/2604_96828618/article/details/164025493?spm1011.2415.3001.10575sharefrommp_manage_link一、实验内容1. 安装微信开发者工具首先访问微信开发者工具官方下载页面根据计算机的操作系统下载稳定版安装包并完成安装。微信开发者工具提供了代码编辑、编译预览、模拟器和调试器等功能是本实验开发和测试小程序的主要工具。2. 创建第一个微信小程序项目在本地创建空白项目目录并在微信开发者工具中选择“小程序”项目类型填写项目名称和目录后完成创建。本实验最终代码保存在lab1/code1文件夹中。3. 设计“or”切换小程序本实验在基础 Hello World 案例上进行扩展制作一个可以循环切换小动物图片和问候文字的小程序。初始页面显示hello dog和腊肠犬图片点击not me按钮后按以下顺序切换hello orange cat和橘猫图片hello black cat和黑猫图片hello white cat和白猫图片再次回到hello dog和腊肠犬图片。四张图片分别保存在code1/img文件夹中img/ ├── sausage-hotdog.jpg ├── orange-cat.jpg ├── black-cat.jpg └── white-cat.jpg3.1 页面导航和整体结构页面使用项目自带的navigation-bar组件设置顶部导航并使用scroll-view作为可滚动的主体区域navigation-bar titleor back{{false}} color#4a3828 background#fff8ea /navigation-bar scroll-view classscrollarea scroll-y enhanced show-scrollbar{{false}} view classpage-container !-- 页面内容 -- /view /scroll-viewtitle设置导航栏标题back{{false}}表示当前页面是首页不显示返回按钮。scroll-y允许页面纵向滚动避免内容在小屏幕设备中显示不完整show-scrollbar{{false}}隐藏滚动条使页面更加简洁。3.2 使用数据绑定显示当前宠物在index.js的data中建立pets数组每个元素同时保存问候文字、图片路径和对应表情。这样可以保证切换时文字和图片始终一一对应。data:{pets:[{wording:hello dog,image:/img/sausage-hotdog.jpg,emoji:},{wording:hello orange cat,image:/img/orange-cat.jpg,emoji:},{wording:hello black cat,image:/img/black-cat.jpg,emoji:‍⬛},{wording:hello white cat,image:/img/white-cat.jpg,emoji:}],currentIndex:0,currentPet:{wording:hello dog,image:/img/sausage-hotdog.jpg,emoji:}}currentIndex保存当前宠物在数组中的下标初始值为0所以程序第一次打开时显示数组中的腊肠犬。currentPet保存当前需要展示的完整宠物对象。WXML 使用双大括号进行数据绑定view classgreeting-row text classpet-emoji{{currentPet.emoji}}/text text classtitle{{currentPet.wording}}/text /view image classpet-image modeaspectFill src{{currentPet.image}} /image当currentPet发生变化时页面中的表情、问候文字和图片会自动更新。modeaspectFill让图片在保持原始比例的同时铺满固定大小的图片区域多余部分自动裁剪3.3 实现按钮点击和循环切换按钮使用bindtap将点击事件绑定到changePet函数button classchange-button bindtapchangePet hover-classbutton-hover not me /button其中bindtapchangePet表示点击按钮时执行 JavaScript 中的同名函数hover-class用于设置按钮按下时的视觉反馈。循环切换逻辑如下changePet(){constnextIndex(this.data.currentIndex1)%this.data.pets.lengththis.setData({currentIndex:nextIndex,currentPet:this.data.pets[nextIndex]})}每次点击后当前下标加1再对数组长度取模。this.setData()用来修改页面数据并通知小程序重新渲染相关 WXML 内容。不能只直接修改this.data否则界面不会可靠地同步更新。3.4 使用列表渲染制作状态指示点图片下方设置四个状态指示点用来提示当前处于第几张图片view classindicator-list view wx:for{{pets}} wx:keywording classindicator {{index currentIndex ? indicator-active : }} /view /viewwx:for{{pets}}会根据宠物数组循环创建四个view。系统自动提供的index表示当前循环下标当它等于currentIndex时元素会额外获得indicator-active样式使当前指示点变长并改变颜色。.indicator { width: 13rpx; height: 13rpx; margin: 0 8rpx; border-radius: 50%; background: #dccbb8; } .indicator-active { width: 36rpx; border-radius: 8rpx; background: #d48852; }3.5 背景和宠物卡片设计页面整体使用米白、浅橙和棕色组成的暖色风格与猫狗图片的轻松主题保持一致。背景由两个径向渐变和一个线性渐变叠加而成.scrollarea { flex: 1; overflow-y: auto; background: radial-gradient(circle at 12% 18%, rgba(255, 197, 92, 0.24) 0, rgba(255, 197, 92, 0.24) 90rpx, transparent 92rpx), radial-gradient(circle at 88% 82%, rgba(133, 196, 157, 0.20) 0, rgba(133, 196, 157, 0.20) 130rpx, transparent 132rpx), linear-gradient(160deg, #fff8ea 0%, #f9edda 100%); }主体内容放在半透明白色卡片中并通过圆角、边框和阴影增强层次.pet-card { width: 100%; padding: 42rpx 34rpx 38rpx; border: 2rpx solid rgba(151, 112, 75, 0.12); border-radius: 38rpx; background: rgba(255, 255, 255, 0.88); box-shadow: 0 22rpx 55rpx rgba(106, 77, 48, 0.16); }按钮采用胶囊形圆角和橙色渐变并设置阴影与按压反馈.change-button { width: 72%; border: none; border-radius: 999rpx; background: linear-gradient(135deg, #e49a63, #cb704b); color: #ffffff; box-shadow: 0 10rpx 24rpx rgba(198, 105, 69, 0.28); } .button-hover { opacity: 0.82; transform: scale(0.98); }页面尺寸主要使用微信小程序提供的rpx单位。屏幕宽度会被换算为750rpx所以图片、间距、文字和圆角可以根据不同设备宽度自动缩放。4. 最终运行效果二、问题总结与体会1. 实验中遇到的问题及解决方法1不同图片尺寸导致页面布局变化。四张图片的宽高比例并不完全一致如果使用widthFix切换图片时展示区域高度会发生改变。解决方法是在.image-frame中设置统一的宽高再给图片设置width: 100%、height: 100%和modeaspectFill。这样图片会保持比例并填满容器切换时页面结构更加稳定。2两个状态的三元运算无法满足四个状态循环。基础案例可以通过三元表达式在girl和boy之间切换但本实验需要依次展示四组文字和图片。使用对象数组统一保存每只宠物的数据通过“下标加一后对数组长度取模”的方式完成循环。3顶部区域可能被状态栏遮挡。使用自定义navigation-bar组件处理系统状态栏和胶囊按钮区域页面主体放在导航栏下方的滚动容器中相比直接添加固定顶部内边距更适合不同设备。2. 实验收获与体会通过本次实验我熟悉了微信小程序的基本流程理解了 WXML、WXSS、JavaScript 和 JSON 配置文件之间的分工。WXML 负责页面结构和数据绑定WXSS 负责外观及移动端布局JavaScript 负责数据与交互逻辑JSON 负责页面配置和组件注册。
延伸阅读

更多相关文章

2026/10/24 4:28:24

界面控件DevExpress WinForms中文帮助文档 - 入门指南

DevExpress WinForms控件包含了190多个Windows Forms控件和UI库,能帮助开发者提供为Windows Forms平台创建具有强大影响力的软件解决方案所需的组件,最新版本支持.NET 10。 在本系列文章中,我将为大家整理DevExpress WinForms的中文帮助文档…

2026/10/24 4:28:31

Linux之线程池(一)

日志日志与策略模式一、什么是设计模式软件开发里,很多场景都是重复遇到的经典问题。前辈工程师针对这些高频场景,总结出一套通用、成熟、可复用的解决方案,这套方案就叫做设计模式。简单理解:写代码的 “模板套路”,目…

2026/10/26 7:29:06

SAP UI5 里有没有类似 RxJS map Operator 的机制

在一个典型的 SAP UI5 项目里,我们很容易遇到这样一段代码。后台通过 OData 返回销售订单,前端拿到一批订单以后,需要把原始字段转换成更适合页面消费的结构,例如把金额字符串转换成数字,把技术状态转换成业务状态,把几个字段组合成显示文本。熟悉 RxJS 的开发者看到这里…

2026/10/28 11:35:12

三星闭源ROM系统APK修改:odex合并与apk manager汉化实战

简介:这份文档面向需要深度定制三星等闭源 Android 系统应用的中高级玩家与 ROM 爱好者,聚焦 APK 与 ODEX 的合并处理,解决系统应用在缺少源码、签名受限条件下难以反编译、汉化与重新打包的问题。压缩包共 1 个 docx 文件,约 23K…

2026/10/28 11:35:12

SAS与SATA桥接芯片解析:双端口冗余与扇区转换原理

简介:这份资源是 Marvell 88SF9110B0 的官方数据手册,面向从事企业级存储系统设计、SAS/SATA 桥接方案选型与调试的硬件工程师及嵌入式开发者。芯片为 6Gb/s SAS 到 SATA 桥接器件,可让标准单端口 SATA 硬盘或固态盘以双端口 SAS SSP 目标设备…

2026/10/28 11:35:12

Windows下Memcached安装配置与性能优化指南

1. Windows环境下Memcached安装指南Memcached作为一款高性能的分布式内存对象缓存系统,在Web应用性能优化中扮演着重要角色。不同于Linux环境下相对简单的安装流程,Windows平台上的部署往往会让开发者遇到各种"水土不服"的问题。本文将基于最新…

2026/10/28 11:35:12

Git代码提交统计技巧与实战经验分享

1. 项目背景与核心需求在团队协作开发中,我们经常需要统计某个时间段内的代码提交频率。比如领导问"上季度我们团队在XX项目上投入了多少开发资源",或者你想分析自己最近一个月的工作节奏。这时候如果手动翻git log,既低效又容易出…

2026/10/28 11:35:12

Transformer数学本质:贝叶斯推理与几何动力学解析

1. 项目概述Transformer架构自2017年提出以来,已成为深度学习领域的基石模型。但大多数研究者仅停留在应用层面,鲜少有人深入探讨其数学本质。本文将揭示Transformer与贝叶斯推理之间的深刻联系,并从几何与动力学双重视角构建统一的理论框架。…

2026/10/28 11:30:11

DeepSeek本地部署实战:Ollama、显存核算与API接入

简介:这份PDF文档面向AI技术爱好者、企业IT管理员与开发者,聚焦在本地环境部署DeepSeek大语言模型的完整流程与安全可控价值,帮助需要处理敏感信息、构建私有化AI服务的读者规避数据上云风险,并掌握模型定制与垂直场景优化的方法。…

2026/10/27 14:24:03

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/27 9:34:54

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/28 3:32:29

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/28 0:02:13

Python股票自动交易系统源码解析:从行情获取到风控的完整链路

简介:这份资源是面向高校计算机、金融相关专业毕业设计场景的完整项目源码包,主题为基于Python的股票自动交易系统,适合需要完成毕设选题、课程设计或自学金融量化交易开发的学生与开发者参考。压缩包共收录687个文件,整体约14.93…

2026/10/28 0:02:13

视酷酷信IM源码部署指南:Java 17+MySQL 8.0.33实战配置

简介:这是一套2024年亲测可部署的视酷酷信IM即时通讯系统源码,面向具备Java、OC、C#及Vue开发能力的技术人员,解决私有化即时通讯平台快速搭建与二次定制需求,尤其适用于需集成商城、保障数据主权的中小型企业或独立开发者。资源共…

2026/10/28 0:02:13

Python爬取百度迁徙数据:接口解析、批量采集与避坑指南

简介:这份资源是一个用Python爬取百度迁徙数据的脚本压缩包,面向具备Python基础、希望入门网络爬虫与数据解析的开发者,解决按日期获取全国热门城市人口迁徙数据的问题。包内共1个文件,为单个py脚本,压缩包约1KB&#…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑