草庐IT

Android Studio实现功能强大的购物商城APP

振华OPPO 2023-04-14 原文

这里写目录标题

一、项目概述

本次项目是现在软件商店很流行的购物商城APP,现在万物互联的时代,网上shopping早已经是大家的习惯了。足不出户地选择自己想要的商品进行购买多么地方便,这就促使了这款购物商城APP的出现。它具有底部导航栏,有首页、分类、发现、购物车和个人中心五个底部导航栏,每个选项卡功能都很丰富,资源文件除了drawable文件夹中的图片外,其他都是放在Tomcat服务器中的,直接启动Tomcat调用就行。总体来说是非常好的综合项目。

二、开发环境

三、项目结构

1、将项目的压缩包解压,里面是两个压缩包,第一个是资源文件,第二个是源码。

2、分别解压后,先来看下atguigu这个文件夹,其实img是加载商品详情页会用的商品图片文件,json是加载商品详情页用到的商品描述信息。

3、再来看下ShoppingMall文件夹,这就是我们的商城源码。我们在D盘或者E盘新建一个Project文件夹,然后把它复制进来。我们再用Android Studio打开这个ShoppingMall文件夹,此时打开图标变成Android小机器人的头像,说明这就是一个Android项目。

4、我们进行gradle配置和同步后,就构建好了项目,现在我们先不着急运行,来看下项目结构。

任何一个新建的项目都会默认使用Android 模式的项目结构,但这并不是项目真实的目录结构,而是被Android Studio转换过的。但是这种项目结构简洁明了,适合进行快速开发。这里借用书中的介绍,可以给小白们很好的指引,如果很熟悉结构的可以跳过这几张图。



这里面app就是我们的项目主目录,其他的加粗字体的文件夹都是导入的框架,是直接拿来用的,那么下面,我们就对app目录进行详细说明,app目录如下图所示:

其他文件夹,还是补充介绍下,学习就是重复的过程嘛,上面这样分类就是非常好的习惯,有助于项目共同开发,目录结构一目了然。

四、配置服务器

1、修改IP地址

如果你是用Android Studio自带的模拟器就不需要改动ip地址;如果是用的第三方模拟器,比如夜神,就需要改成自己电脑的ip地址,就是IPV4地址;如果你想运行到真机上就让手机连上电脑共享的WiFi,注意要关闭电脑的防火墙。

修改的地方就是utils文件夹下的Constants文件,如下图所示:

2、放置资源文件
我们先花五分钟安装和配置好Tomcat服务器,对于没有使用过Tomcat的同学,可以看这里:

如何安装和配置Tomcat(全网最详)

我们的资源文件atguigu文件夹(img图片和json数据),要放在webapps目录下的ROOT目录中,这样只要启动Tomcat服务器,应用就能访问到这些数据了。就像下图红框所示这样:

3、修改图片内容

如果你想换掉商城里面的商品图片,可以将这三个文件夹里面想换的图片替换掉,你换的图片一定要文件名和后缀名与原先的图片一样。hdpi、xhpdi、xxhdpi就是Android常见分辨率,适用于各种尺寸的模拟器。每个文件夹的图片都是相互独立使用的。

举个栗子:

我想换掉这张图片

那么我打开这张图片看一下,发现它是PNG图像,分辨率是80X80

然后从自己电脑里面选一张喜欢的图片,调整大小和它相同,重命名一下,然后复制到这个文件夹替换它就行了。

五、项目演示

1、启动AVD运行项目,可以看到此时只有界面,并没有任何图片图片显示,因为我们还没有开启服务器。

2、再启动Tomcat,退出应用再打开,可以看到资源文件都被加载进来了,很像某宝的首页,这里可以看到最上面的搜索框,下面是滚动播放的广告栏,中间是商品的分类区,下面又是一个可以滚动的图片栏,继续向下,是秒杀栏,可以左右滑动。

3、我们向下滑动,这里是新品推荐,有图片和商品名称,还有价格,继续滑动向下都是首页展示的热卖商品。

4、点击右上角的消息,可以进入消息中心,查看以下信息。

5、选择【服饰】,我们可以看到服饰有关的商品,这里可以按综合排序或者价格递增递减排列,也可以进行筛选,因为功能很多,这里不一一展示。

6、点击任意一个商品,可以看到它的详情,可以联系客服,还可以收藏加购,加购后我们会在购物车看到加入的商品。

7、我们在首页随便选择一个商品,进入都是不同的商品详情,我们将这件物品收藏加购。

8、我们在【分类】中可以看到这里左侧有各种选项,然后右侧就是展示的商品,这里我们选择小裙子,可以看到右边先是【热卖推荐】,然后是【常用分类】,非常符合现在的购物软件。

9、右滑选择一件商品,然后加购。

10、在【标签】里面,可以看到有很多分类标签。

11、点击【社区】,可以看到这里是给用户讨论的地方,每个用户发的帖子就在这里呈现,有赞有评论

12、热帖也是如此,就相当于热榜,根据流量和热度来计算的帖子

13、点击【购物车】,我们可以看到这里是刚刚加购的商品,我们可以选择数量,并且可以多选。

14、点击删除画板这件商品,可以看到画板被删除了。

15、点击【个人中心】,可以看到很多个人信息,包括地址、收藏和优惠券等等。

16、点击头像,进入到登录注册界面,当然这里登录注册功能只是展示。

五、项目总结

本次项目主要是应用了适配器和帧布局的知识,加上跳转以及导入UI框架实现,整体难度中等偏难。可以说是对购物商城几乎所有的功能进行了复现,功能十分强大完整。大家也可以模仿着,自己去做一个属于自己的APP。光学习理论只学到了20%,实践才能学到60%,剩下20%需要自己总结和思考才行。

六、源码获取

点此下载源码:👉Android Studio实现功能强大的购物商城项目👈

还可以关注博主公众号《萌新加油站》,后台回复:商城APP,即可获取源码。


🚀这有你错过的精彩内容
Android Studio实现记账本
Android Studio实现旅游App
Android Studio实现新闻APP
Android Studio实现订餐系统
Android Studio实现天气预报

有关Android Studio实现功能强大的购物商城APP的更多相关文章

  1. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  2. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  3. ruby-on-rails - 如何重命名或移动 Rails 的 README_FOR_APP - 2

    当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?

  4. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  5. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  6. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  7. ruby - 使用 postgres.app 在 rvm 下要求 pg 时出错 - 2

    我正在使用Postgres.app在OSX(10.8.3)上。我已经修改了我的PATH,以便应用程序的bin文件夹位于所有其他文件夹之前。Rammy:~phrogz$whichpg_config/Applications/Postgres.app/Contents/MacOS/bin/pg_config我已经安装了rvm并且可以毫无错误地安装pggem,但是当我需要它时我得到一个错误:Rammy:~phrogz$gem-v1.8.25Rammy:~phrogz$geminstallpgFetching:pg-0.15.1.gem(100%)Buildingnativeextension

  8. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  9. 【Java入门】使用Java实现文件夹的遍历 - 2

    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

  10. ruby - Arrays Sets 和 SortedSets 在 Ruby 中是如何实现的 - 2

    通常,数组被实现为内存块,集合被实现为HashMap,有序集合被实现为跳跃列表。在Ruby中也是如此吗?我正在尝试从性能和内存占用方面评估Ruby中不同容器的使用情况 最佳答案 数组是Ruby核心库的一部分。每个Ruby实现都有自己的数组实现。Ruby语言规范只规定了Ruby数组的行为,并没有规定任何特定的实现策略。它甚至没有指定任何会强制或至少建议特定实现策略的性能约束。然而,大多数Rubyist对数组的性能特征有一些期望,这会迫使不符合它们的实现变得默默无闻,因为实际上没有人会使用它:插入、前置或追加以及删除元素的最坏情况步骤复

随机推荐