目录
一、测试环境说明
二、项目简介
三、项目演示
四、部设计详情(部分)
首页
购票页面
五、项目源码
一、测试环境说明
电脑环境
Windows 11
编写语言
JAVA
开发软件
Android Studio (2020)
开发软件只要大于等于测试版本即可(近几年官网直接下载也可以),若是版本低于测试版本请自行测试。项目需要根据你的软件自行适配
二、项目简介
该项目简介来自网络,具体内容需要自行测试
这是一个使用Android Studio和Java语言开发的九寨沟旅游App,主要功能包括门票预订、景点介绍和活动资讯。
App采用SQLite数据库存储用户信息和购票记录,通过SharedPreferences实现用户登录状态的保存。
首页包含轮播图、公告列表和快捷入口,方便用户快速访问各功能模块。
门票预订功能支持选择门票数量、观光车票和保险,并自动计算总金额,购票记录可随时查看。
景点介绍部分使用ViewPager2和ListView联动展示九寨沟的地理、文化和历史等信息。
用户可以通过登录注册功能管理个人账户,所有数据都通过数据库持久化存储,确保信息不丢失。
该项目由编程乐学团队介入,优化布局完善功能
三、项目演示
网络资源模板--基于Android studio 九寨沟App
四、部设计详情(部分)
首页
1. 页面结构分析
该页面采用垂直线性布局作为根容器,内部嵌套可滚动的ScrollView确保内容超出屏幕时可滑动浏览。
主要分为三个部分:顶部的轮播图区域使用ViewPager实现图片自动切换;中间的公告列表采用自定义ListView展示多条文本信息;底部是四个功能入口的ImageButton,分别对应不同功能模块。
整体布局层次清晰,各模块间距合理,通过margin属性控制元素间隔,形成美观的视觉分隔。
2. 核心技术应用
页面运用了多种Android核心技术:ViewPager配合Fragment实现轮播图效果,通过自定义PageTransformer添加页面切换动画;自定义MyListView优化了列表滚动性能;SimpleAdapter动态绑定公告数据;ImageButton设置点击事件跳转不同Activity。
此外,通过ScrollView处理内容溢出,使用dimension资源统一管理按钮高度,体现了良好的代码规范。
3. 功能模块详解
顶部轮播图展示三张景区宣传图,支持手势滑动和自动轮播。公告区域采用简约列表样式,每条包含标题和日期,点击可跳转网页详情。
底部四个大按钮分别对应"景区概况"、"认识九寨"、"精彩活动"和"门票预订"功能模块,点击后跳转对应Activity。
整个页面作为App首页,有效整合了核心功能入口,同时通过轮播图和公告栏增强信息展示效果,布局兼顾功能性与美观性。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".fragments.HomeFragment"><!-- TODO:设置轮播图的进度条 --><ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical" ><FrameLayoutandroid:layout_width="match_parent"android:layout_height="180dp"android:layout_margin="10dp"><androidx.viewpager.widget.ViewPagerandroid:id="@+id/viewPager_shuffling"android:layout_width="match_parent"android:layout_height="match_parent"></androidx.viewpager.widget.ViewPager></FrameLayout><com.example.finalhomework_lienyu.util_classes.MyListViewandroid:id="@+id/listView_broadcast"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginBottom="15dp"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:orientation="vertical"><ImageButtonandroid:id="@+id/imageButton_overall"android:layout_width="match_parent"android:layout_height="@dimen/home_ImgBtn_height"android:layout_marginBottom="10dp"android:src="@drawable/imgbtnpic_overall"android:padding="0dp"android:scaleType="centerCrop"/><ImageButtonandroid:id="@+id/imageButton_knowjiuzhai"android:layout_width="match_parent"android:layout_height="@dimen/home_ImgBtn_height"android:layout_marginBottom="10dp"android:src="@drawable/imgbtnpic_knowjiuzhai"android:padding="0dp"android:scaleType="centerCrop"/><ImageButtonandroid:id="@+id/imageButton_ticketbook"android:layout_width="match_parent"android:layout_height="@dimen/home_ImgBtn_height"android:layout_marginBottom="10dp"android:src="@drawable/imgbtnpic_ticketbook"android:padding="0dp"android:scaleType="centerCrop"/><ImageButtonandroid:id="@+id/imageButton_avtivities"android:layout_width="match_parent"android:layout_height="@dimen/home_ImgBtn_height"android:layout_marginBottom="10dp"android:src="@drawable/imgbtnpic_activities"android:padding="0dp"android:scaleType="centerCrop"/></LinearLayout></LinearLayout></ScrollView></LinearLayout>x
购票页面
1. 页面结构分析
该页面采用垂直的LinearLayout布局,整体分为票价信息展示区和购票操作区两部分。
顶部清晰展示了旺季政策、门票价格、观光车票价格、保险费和入园时间等关键信息。中部提供门票和观光车票的数量输入框,以及保险购买选项。
底部显示实时计算的总金额,并设有"立即购买"和"查看购票记录"两个功能按钮。
布局层次分明,通过合理的间距和字体大小差异突出了重要信息,整体设计简洁实用。
2. 核心技术应用
页面采用了SQLite数据库存储购票记录,通过自定义TicketDbHelper类管理数据库创建和升级。
使用SharedPreferences获取用户登录状态,确保只有登录用户才能购票。实时计算功能通过EditText的点击监听器实现,动态更新总金额显示。
日期处理使用SimpleDateFormat格式化当前时间,购票数据包含账户信息、票务详情和时间戳等完整字段。
按钮点击事件处理购票流程和记录查看跳转,具有完善的输入验证机制。
3. 功能模块详解
页面核心是景区门票购买系统,顶部详细展示了旺季票价政策(门票190元、车票90元、保险10元)和入园时间限制(8:00-14:00入园,18:00闭园)。
用户可自由组合购买门票和观光车票,自主选择是否购买保险,系统实时计算并显示总金额。购票时验证用户登录状态,并将订单信息(包含购买数量、总价、购买时间、游览日期等)存入本地数据库。
底部提供购票记录查看入口,方便用户查询历史订单,形成完整的票务管理闭环。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:padding="16dp"tools:context=".TicketPurchaseActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="旺季政策(2025.04.01-2025.11.15)"android:textSize="16sp"android:textColor="@color/black"android:layout_marginBottom="10dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="门票: 190元/人"android:textSize="16sp"android:layout_marginBottom="5dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="观光车票: 90元/人"android:textSize="16sp"android:layout_marginBottom="5dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="保险费: 10元/人(自愿购买)"android:textSize="16sp"android:layout_marginBottom="20dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="每日限量: 41000人"android:textSize="16sp"android:layout_marginBottom="20dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="入园时间: 8:00-14:00"android:textSize="16sp"android:layout_marginBottom="5dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="闭园时间: 18:00"android:textSize="16sp"android:layout_marginBottom="20dp"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginBottom="10dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="门票数量:"android:textSize="16sp"android:layout_marginRight="10dp"/><EditTextandroid:id="@+id/et_ticket_count"android:layout_width="100dp"android:layout_height="wrap_content"android:inputType="number"android:hint="请输入数量"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginBottom="10dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="观光车票数量:"android:textSize="16sp"android:layout_marginRight="10dp"/><EditTextandroid:id="@+id/et_bus_count"android:layout_width="100dp"android:layout_height="wrap_content"android:inputType="number"android:hint="请输入数量"/></LinearLayout><CheckBoxandroid:id="@+id/cb_insurance"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="购买保险"android:layout_marginBottom="20dp"/><TextViewandroid:id="@+id/tv_total_price"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="总金额: 0元"android:textSize="18sp"android:textColor="@color/red"android:layout_marginBottom="20dp"/><Buttonandroid:id="@+id/btn_purchase"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="立即购买"android:textSize="18sp"android:background="@color/blue"android:textColor="@color/white"/><Buttonandroid:id="@+id/btn_view_records"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="查看购票记录"android:textSize="18sp"android:layout_marginTop="10dp"android:background="@color/gray"android:textColor="@color/black"/>
</LinearLayout>
五、项目源码
👇👇👇👇👇快捷方式👇👇👇👇👇