1.开发工具

  • AndroidStudio3.0.1

  • jdk1.8

  • Android4.1以上

  • 语言:JAVA

2.页面部分效果图如下:

3.Sqlite数据库存储

4.首页,登录,注册等部分页面

/*** 获取界面上的UI控件*/private void init() {tv_back = (TextView) findViewById(R.id.tv_back);tv_main_title = (TextView) findViewById(R.id.tv_main_title);tv_main_title.setText("Fangtaobap");rl_title_bar = (RelativeLayout) findViewById(R.id.title_bar);rl_title_bar.setBackgroundColor(Color.parseColor("#FF8000"));tv_back.setVisibility(View.GONE);initBodyLayout();}/*** 获取底部导航栏上的控件*/private void initBottomBar() {mBottomLayout = (LinearLayout) findViewById(R.id.main_bottom_bar);mHomeBtn = findViewById(R.id.bottom_bar_home_btn);mClassifyBtn = findViewById(R.id.bottom_bar_classify_btn);mShopcarBtn = findViewById(R.id.bottom_bar_shopcar_btn);mMyInfoBtn = findViewById(R.id.bottom_bar_myinfo_btn);tv_home = (TextView) findViewById(R.id.bottom_bar_text_home);tv_classify = (TextView) findViewById(R.id.bottom_bar_text_classify);tv_shopcar = (TextView) findViewById(R.id.bottom_bar_text_shopcar);tv_myInfo = (TextView) findViewById(R.id.bottom_bar_text_myinfo);iv_home = (ImageView) findViewById(R.id.bottom_bar_image_home);iv_classify = (ImageView) findViewById(R.id.bottom_bar_image_classify);iv_shopcar = (ImageView) findViewById(R.id.bottom_bar_image_shopcar);iv_myInfo = (ImageView) findViewById(R.id.bottom_bar_image_myinfo);}private void initBodyLayout() {mBodyLayout = (FrameLayout) findViewById(R.id.main_body);}/*** 控件的点击事件*/@Overridepublic void onClick(View v) {switch (v.getId()) {//首页的点击事件case R.id.bottom_bar_home_btn:clearBottomImageState();selectDisplayView(0);break;//分类的点击事件case R.id.bottom_bar_classify_btn:clearBottomImageState();selectDisplayView(1);break;//购物车的点击事件case R.id.bottom_bar_shopcar_btn:clearBottomImageState();selectDisplayView(2);break;//我的点击事件case R.id.bottom_bar_myinfo_btn:clearBottomImageState();selectDisplayView(3);break;default:break;}}/*** 设置底部四个按钮的点击监听事件*/private void setListener() {for (int i = 0; i < mBottomLayout.getChildCount(); i++) {mBottomLayout.getChildAt(i).setOnClickListener(this);}}/*** 清除底部按钮的选中状态*/private void clearBottomImageState() {tv_home.setTextColor(Color.parseColor("#666666"));tv_classify.setTextColor(Color.parseColor("#666666"));tv_shopcar.setTextColor(Color.parseColor("#666666"));tv_myInfo.setTextColor(Color.parseColor("#666666"));iv_home.setImageResource(R.mipmap.main_homepage_icon);iv_classify.setImageResource(R.mipmap.main_classify);iv_shopcar.setImageResource(R.mipmap.main_shopcar_icon);iv_myInfo.setImageResource(R.mipmap.main_my_icon);for (int i = 0; i < mBottomLayout.getChildCount(); i++) {mBottomLayout.getChildAt(i).setSelected(false);}}/*** 设置底部按钮选中状态*/public void setSelectedStatus(int index) {switch (index) {case 0:mHomeBtn.setSelected(true);iv_home.setImageResource(R.mipmap.main_homepage_icon_selected);tv_home.setTextColor(Color.parseColor("#0097F7"));rl_title_bar.setVisibility(View.VISIBLE);tv_main_title.setText("首页");break;case 1:mClassifyBtn.setSelected(true);iv_classify.setImageResource(R.mipmap.main_classify_selected);tv_classify.setTextColor(Color.parseColor("#0097F7"));rl_title_bar.setVisibility(View.VISIBLE);tv_main_title.setText("分类");break;case 2:mShopcarBtn.setSelected(true);iv_shopcar.setImageResource(R.mipmap.main_shopcar_icon_selected);tv_shopcar.setTextColor(Color.parseColor("#0097F7"));rl_title_bar.setVisibility(View.VISIBLE);tv_main_title.setText("购物车");break;case 3:mMyInfoBtn.setSelected(true);iv_myInfo.setImageResource(R.mipmap.main_my_icon_selected);tv_myInfo.setTextColor(Color.parseColor("#0097F7"));rl_title_bar.setVisibility(View.GONE);}}/*** 移除不需要的视图*/private void removeAllView() {for (int i = 0; i < mBodyLayout.getChildCount(); i++) {mBodyLayout.getChildAt(i).setVisibility(View.GONE);}}/*** 设置界面view的初始化状态*/private void setInitStatus() {clearBottomImageState();setSelectedStatus(0);createView(0);}/*** 显示对应的页面*/private void selectDisplayView(int index) {removeAllView();createView(index);setSelectedStatus(index);}/*** 选择视图*/private void createView(int viewIndex) {switch (viewIndex) {case 0://首页if (homeView == null) {homeView = new HomeView(this);mBodyLayout.addView(homeView.getView());} else {homeView.getView();}homeView.showView();break;case 1://分类if (typeView == null) {typeView = new TypeView(this);mBodyLayout.addView(typeView.getView());} else {typeView.getView();}typeView.showView();break;case 2://购物车if (shopingView == null) {shopingView = new ShopingView(this);mBodyLayout.addView(shopingView.getView());} else {shopingView.getView();}shopingView.showView();break;case 3://我的if (mMyInfoView == null) {mMyInfoView = new MyInfoView(this);mBodyLayout.addView(mMyInfoView.getView());} else {mMyInfoView.getView();}mMyInfoView.showView();break;}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (data != null) {//从设置界面或登录界面传递过来的登录状态boolean isLogin = data.getBooleanExtra("isLogin", false);if (isLogin) {//登录成功时显示首页clearBottomImageState();selectDisplayView(0);}if (mMyInfoView != null) {//登录成功或退出登录时根据isLogin设置我的界面mMyInfoView.setLoginParams(isLogin);}}}protected long exitTime;//记录第一次点击时的时间@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK&& event.getAction() == KeyEvent.ACTION_DOWN) {if ((System.currentTimeMillis() - exitTime) > 2000) {Toast.makeText(MainActivity.this, "再按一次退出Fangtaobao",Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();} else {MainActivity.this.finish();if (readLoginStatus()) {//如果退出此应用时是登录状态,则需要清除登录状态,同时需清除登录时的用户名clearLoginStatus();}System.exit(0);}return true;}return super.onKeyDown(keyCode, event);}/*** 获取SharedPreferences中的登录状态*/private boolean readLoginStatus() {SharedPreferences sp = getSharedPreferences("loginInfo",Context.MODE_PRIVATE);boolean isLogin = sp.getBoolean("isLogin", false);return isLogin;}/*** 清除SharedPreferences中的登录状态*/private void clearLoginStatus() {SharedPreferences sp = getSharedPreferences("loginInfo",Context.MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit();//获取编辑器editor.putBoolean("isLogin", false);//清除登录状态editor.putString("loginUserName", "");//清除登录时的用户名editor.commit();//提交修改}

5.整体代码分析

  • 代码采用结构activity+view+sqlite
  • Eventbus的使用
  • 购物车功能+商品展示
  • 自定义dialog

这是一片课设,需要的朋友可以去学习,有意见可以提出了,链接如下

熬夜不容易:点我 点我下载

联系qq:2258629201

Android仿照淘宝,京东,当当购物平台相关推荐

  1. Android仿淘宝京东商品规格参数颜色筛选

    Android 选择商品属性sku 最近项目中使用SKU属性查询,类似淘宝京东商品的选择,在网上查询了弄了几个源码看看,发现还是实现不了多属性选择问题,再原基础上改动相当费事,所以想干脆自己处理这个问 ...

  2. Android 仿淘宝京东等我的订单界面及任意列表拓展

    概述 目前像淘宝及展示列表等都有多个item展示的需求,可能大多数如果没做过,第一眼就是ListView去嵌套ListView,虽然这样是可以完成,但是这样做会导致手机过度绘制,为什么呢?因为当一个I ...

  3. Android 仿淘宝京东商品详情页阻力翻页效果

    原文链接:http://code.taobao.org/p/android-example/diff/46/trunk/%E5%95%86%E5%9F%8E%E8%AF%A6%E6%83%85/src ...

  4. Android 仿淘宝京东商品详情视频+图片与图片第一帧获取

    近日项目有个新需求就是把原本的商品详情只有图片展示,改为视频+图片方式展示. 此博客只提供记录,与思路具体根据自己需求实现.首先想到的是Google搜索下别人的实现方式来参考实现发现不怎么适合项目需求 ...

  5. 淘宝、拼多多、京东等购物平台的优惠券公众号免费搭建持续更新

    看到最近很多人在微信内做淘宝.拼多多.京东等购物平台的优惠券你是不是也想做呢?看了网上的很多教程都是需要购买域名或者服务器.安装程序,甚至有的还需要自己写代码是不是感觉望而却步,感觉很复杂?有些还需要 ...

  6. Android仿淘宝、京东Banner滑动查看图文详情

    文章目录 写在前面 效果图 原理分析 核心代码 源码地址 写在前面 本文基于 ViewPager2 实现的 Banner 效果,进而实现了仿淘宝.京东Banner滑动至最后一页时继续滑动来查看图文详情 ...

  7. 视频教程-仿淘宝客户端电商平台android初级速成-Android

    仿淘宝客户端电商平台android初级速成 北风网技术总监,在某大型电信设备公司担任架构师,主要从事电信领域的软件开发,经验丰富.对电信计费系统以及核心网软件系统有深入了解,对设计高可靠性,高扩展性的 ...

  8. 仿淘宝客户端电商平台android初级速成-张勇-专题视频课程

    仿淘宝客户端电商平台android初级速成-969人已学习 课程介绍         本教程从当下火热的商城项目入手,以讲师多年商城项目开发为核心,与北风网强强联手录制了<北风商城>And ...

  9. 淘宝京东拼多多抖音淘特1688等多平台商品APP详情API接口(商品详情页面数据接口,商品销量接口,关键词搜索商品销量接口)

    淘宝京东拼多多抖音淘特1688等多平台商品APP详情API接口(商品详情页面数据接口,商品销量接口,关键词搜索商品销量接口)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String ...

最新文章

  1. VUE做一个公共的提示组件,显示两秒自动隐藏,显示的值父组件传递给子组件
  2. Hardware Error 内存报错
  3. 如何通过IP定位交换机
  4. h5点击后字体加粗出现下边框_人力资源管理论文格式(字体+版式+打印)
  5. 互斥锁、死锁、递归锁、信号量、Event
  6. 流媒体服务器 NTV Media Server G3 电视回看功能赏析
  7. 普通函数被类引用为友元函数
  8. WPF中TextBlock文本换行与行间距
  9. php 查看使用多少内存
  10. 黑群晖的网络录像机启用并直通互联网的几个关键点
  11. 音频转码-Mp3转AMR--转载请注明出处
  12. 压力测试工具Jmeter使用详解
  13. macOS High Sierra 10.13
  14. php网页游戏开发代码,PHP游戏编程25个脚本代码
  15. 新手如何成为一名黑客
  16. Pytest 基础教程
  17. 基于python文本挖掘实战_python实现CNN中文文本分类
  18. Linux 中如何开启端口
  19. java以太网通讯西门子plc300_plc 400 与plc300和 300与300 以太网通讯的问题-工业支持中心-西门子中国...
  20. HTTP、TCP、Socket、长连接、短连接的概念和原理及其区别

热门文章

  1. 七彩灯(两个脚)怎么控制变色
  2. 乔布斯给年轻人的62个忠告
  3. JavaScript 原型链常用方法
  4. R语言rms包应用shiny和函数
  5. 最新免费版 Office 全家桶Copilot,Gamma+MindShow 两大ChatGPT AI创意工具GPT-4神器助力高效智能制作 PPT,一键生成,与AI智能对话修改PPT(免安装)
  6. 有一丝丝的幸福在空中飘过
  7. [02-28][07最新恐怖大片][宫女][DVD中字][已测][21:57]
  8. 日照市计算机硕士研究生招聘,我市公开招聘硕士研究生以上学历人才
  9. Matlab与V-rep联合仿真 逆运动学
  10. 专插本之路——C语言学习