当前位置: 首页 > news >正文

Android---- 一个完整的小项目(消防app)

前言:

       针对不同群体的需求,想着应该拓展写方向。医疗app很受大家喜欢,就打算顺手写个消防app,里面基础框架还是挺简洁 规整的。登陆注册和本地数据库写的便于大家理解。是广大学子的毕设首选啊!

 

 

 

此app主要为了传递 消防知识,以及歌颂消防士兵的奉献精神。在这里我们向他们致敬!此app采用本地数据库litpal,涵盖多种三方依赖,webView,登录注册,头像修改,EventBus,Butterknife,SmartRefreshLayout,XTabLayout,悬浮球,对于初学者及毕业生是很好的项目。注释很全。ui依然是我自己设计的。

 项目内使用的依赖,局部展示 :

plugins {id 'com.android.application'
}
def dbflow_version = "4.2.4"android {namespace 'com.vipbasemaster'/* 编译版本 */compileSdk 33//默认配置defaultConfig {/* 应用Id */applicationId "com.vipbasemaster"/* 最小sdk */minSdk 23/* 目标版本 */targetSdk 33/* 版本编号 */versionCode 1/* 版本名称 */versionName "1.0"/* 添加多 dex分包支持 */multiDexEnabled = truetestInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}//构建类型配置buildTypes {release {/* 是否开启代码混淆,默认false */minifyEnabled false/* 混淆规则配置文件 */proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}//编译选项compileOptions {/*编译Java源代码时使用的Java版本兼容性*/sourceCompatibility JavaVersion.VERSION_1_8/*用于生成类的Java版本*/targetCompatibility JavaVersion.VERSION_1_8}
}
//依赖
dependencies {implementation 'androidx.appcompat:appcompat:1.4.1'implementation 'com.google.android.material:material:1.5.0'implementation 'androidx.constraintlayout:constraintlayout:2.1.3'testImplementation 'junit:junit:4.13.2'androidTestImplementation 'androidx.test.ext:junit:1.1.3'androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'/**沉浸式**/implementation 'com.yanzhenjie:sofia:1.0.5'annotationProcessor "com.github.Raizlabs.DBFlow:dbflow-processor:$dbflow_version"// gradle 3.0.0 可以使用 implementation,否则用 compileimplementation "com.github.Raizlabs.DBFlow:dbflow-core:$dbflow_version"implementation "com.github.Raizlabs.DBFlow:dbflow:$dbflow_version"/**黄刀油**/implementation 'com.jakewharton:butterknife:10.2.1'annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'/**消息发送**/implementation 'org.greenrobot:eventbus:3.0.0'/**权限检测**/implementation 'com.yanzhenjie:permission:2.0.0-rc12'/**万能RecyclerView的数据适配器**/implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.46'/**数据库**/implementation 'org.litepal.android:core:2.0.0'/**二维码**/implementation 'cn.bingoogolapple:bga-qrcode-zbar:1.3.4'/**按钮切换**/implementation 'com.github.zcweng:switch-button:0.0.3@aar'/**选择图片(照片)第三方框架,(照片)框架,解决7.0打开相机报错问题**/implementation 'com.hx.multi-image-selector:multi-image-selector:1.2.2'/**图片缩放的第三方框架**/implementation 'me.relex:photodraweeview:1.1.0'/**图片查看器**/implementation 'com.github.chrisbanes:PhotoView:1.3.0'/**万能布局**/implementation 'androidx.recyclerview:recyclerview:1.2.1'/**轮播**/implementation 'com.youth.banner:banner:1.4.10'/**弹出对话框**/implementation 'com.yanzhenjie.alertdialog:alertdialog:1.0.1'/**万能pop**/implementation 'com.github.zyyoona7:EasyPopup:1.1.2'/**京东地址选择器**/implementation 'com.github.chihane:JDAddressSelector:1.1.4'/**下拉刷新**/implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.5.1'/**没有使用特殊Header,可以不加这行**/implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.5.1'/**MultiDex使用**/implementation 'com.android.support:multidex:1.0.3'/**图片缓存**/implementation 'com.github.bumptech.glide:glide:4.12.0'/**标签切换**/implementation 'com.androidkun:XTabLayout:1.1.3'/**简易时间选择器**/implementation 'com.contrarywind:Android-PickerView:4.1.9'/**加载gif动画**/implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.15'/**android常用工具类依赖**/implementation 'com.blankj:utilcodex:1.30.6'/**主页tab**/implementation 'com.github.Vincent7Wong:EasyNavigation:2.0.5'/**配合主页yoyo动画1**/implementation 'com.nineoldandroids:library:2.4.0'/**配合主页yoyo动画2**/implementation 'com.daimajia.easing:library:2.0@aar'/**配合主页yoyo动画3**/implementation 'com.daimajia.androidanimations:library:2.2@aar'/**loading组件**/implementation 'com.wang.avi:library:2.1.3'/**标题栏**/implementation 'com.wuhenzhizao:titlebar:1.2.0'/**显示文本组件**/implementation 'com.github.linger1216:labelview:v1.1.2'/** 我的水波纹 */implementation 'com.scwang.wave:MultiWaveHeader:1.0.0-alpha-1'/**x5webView**///noinspection GradleDependencyimplementation 'com.tencent.tbs:tbssdk:44226'/**视频播放**/implementation 'cn.jzvd:jiaozivideoplayer:6.4.1'

项目好不好,还得大家自己看看代码能不能读懂,适不适合自己。

良好的代码风格

@Override
public void initView() {fragments.add(new OneFragment());fragments.add(new TwoFragment());fragments.add(new ThreeFragment());fragments.add(new FourFragment());fragments.add(new FiveFragment());easy_navigation_bar.titleItems(tabText)//必传  Tab未选中图标集合.normalIconItems(normalIcon)//必传  Tab选中图标集合.selectIconItems(selectIcon)//必传  fragment集合.fragmentList(fragments)//必传.fragmentManager(getSupportFragmentManager())//分割线高度(默认是1,传0就不展示).lineHeight(0)//Tab图标大小.iconSize(44)//Tab文字大小,0会让文字不显示.tabTextSize(10)//Tab文字距Tab图标的距离.tabTextTop(0)//Tab未选中时字体颜色.normalTextColor(Color.parseColor("#7F7F7F"))//Tab选中时字体颜色.selectTextColor(Color.parseColor("#F0605F"))//同 ImageView的ScaleType.scaleType(ImageView.ScaleType.CENTER_INSIDE)//点击Tab  Viewpager切换是否有动画.smoothScroll(true)//Viewpager能否左右滑动.canScroll(false)//导航栏高度.navigationHeight(58)//true ViewPager 布局在导航栏之上 false 有重叠.hasPadding(true).navigationBackground(Color.parseColor("#252732")).build();
}

有需要的可以私信我, 有偿。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

Android---- 一个完整的小项目(消防app)

前言: 针对不同群体的需求,想着应该拓展写方向。医疗app很受大家喜欢,就打算顺手写个消防app,里面基础框架还是挺简洁 规整的。登陆注册和本地数据库写的便于大家理解。是广大学子的毕设首选啊! 此app主要为了传递 消防…...

XXX程序 详细说明

用于记录理解PC程序的程序逻辑 1、程序的作用 根据原作者的说明(文件说明.txt),该程序 (PC.py) 的主要作用是提取某一个文件夹中的某个设备 (通过config中的信息看出来是Ag_T_8) 产生的日志文件,然后提取其中某些需要的数据&…...

perl下载与安装教程【工具使用】

Perl是一个高阶程式语言,由 Larry Wall和其他许多人所写,融合了许多语言的特性。它主要是由无所不在的 C语言,其次由 sed、awk,UNIX shell 和至少十数种其他的工具和语言所演化而来。Perl对 process、档案,和文字有很强…...

Chrome谷歌浏览器修改输入框自动填充样式

Chrome谷歌浏览器修改输入框自动填充样式 背景字体 背景 input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #fff inset !important; }字体 input:-internal-autofill-selected {-webkit-text-fill-color: #000 !important; }...

Azure CLI 进行磁盘加密

什么是磁盘加密 磁盘加密是指在Azure中对虚拟机的磁盘进行加密保护的一种机制。它使用Azure Key Vault来保护磁盘上的数据,以防止未经授权的访问和数据泄露。使用磁盘加密,可以保护磁盘上的数据以满足安全和合规性要求。 参考文档:https://l…...

Java“牵手”根据关键词搜索(分类搜索)速卖通商品列表页面数据获取方法,速卖通API实现批量商品数据抓取示例

速卖通商城是一个网上购物平台,售卖各类商品,包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取速卖通商品列表和商品详情页面数据,您可以通过开放平台的接口或者直接访问速卖通商城的网页来获取商品详情信息。以下是两种常用方法的介…...

商城-学习整理-高级-消息队列(十七)

目录 一、RabbitMQ简介(消息中间件)1、RabbitMQ简介:2、核心概念1、Message2、Publisher3、Exchange4、Queue5、Binding6、Connection7、Channel8、Consumer9、Virtual Host10、Broker 二、一些概念1、异步处理2、应用解耦3、流量控制5、概述 三、Docker安装RabbitM…...

Android Camere开发入门(1):初识Camera

Android Camere开发入门(1):初识Camera 初步了解 在Android开发中,相机(Camera)是一个常见而重要的功能模块。它允许我们通过设备的摄像头捕捉照片和录制视频,为我们的应用程序增加图像处理和视觉交互的能力。 随着Android系统的不断发展和更新,相机功能也不断改进和增…...

hive表的全关联full join用法

背景:实际开发中需要用到全关联的用法,之前没遇到过,现在记录一下。需求是找到两张表的并集。 全关联的解释如下; 下面建两张表进行测试 test_a表的数据如下 test_b表的数据如下; 写第一个full join 的SQL进行查询…...

PMP串讲

!5种冲突解决策略 !敏捷3355。 ?PMP项目管理132种工具技术合集: 参考2:项目管理的132种工具 - 水之座 ?质量管理,有多少种图: ?风险管理,有多少种图: --参考:PMP相关的十八种…...

最长回文子序列——力扣516

动态规划 int longestPalindromeSubseq(string s){int n=s.length();vector<vector<int>>...

从零实现深度学习框架——Transformer从菜鸟到高手(二)

引言 &#x1f4a1;本文为&#x1f517;[从零实现深度学习框架]系列文章内部限免文章&#xff0c;更多限免文章见 &#x1f517;专栏目录。 本着“凡我不能创造的&#xff0c;我就不能理解”的思想&#xff0c;系列文章会基于纯Python和NumPy从零创建自己的类PyTorch深度学习框…...

docker监控平台FAST OS DOCKER --1

感觉这个是目前好用的中文平台&#xff0c;暂为v1吧 拉取镜像 docker pull wangbinxingkong/fast运行镜像 docker run --name fastos --restart always -p 18091:8081 -p 18092:8082 -e TZ"Asia/Shanghai" -d -v /var/run/docker.sock:/var/run/docker.sock -v /e…...

SpringBoot2.0集成WebSocket

<!-- websocket --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency> 新建配置类 import org.springframework.boot.autoconfigure.condition.Cond…...

Vue的Ajax请求-axios、前后端分离练习

Vue的Ajax请求 axios简介 ​ Axios&#xff0c;是Web数据交互方式&#xff0c;是一个基于promise [5]的网络请求库&#xff0c;作用于node.js和浏览器中&#xff0c;它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生node.js http模块, 而在…...

Spring源码深度解析三 (MVC)

书接上回 10.MVC 流程&源码剖析 * 问题1&#xff1a;Spring和SpringMVC整合使用时&#xff0c;会创建一个容器还是两个容器&#xff08;父子容器&#xff1f;&#xff09; * 问题2&#xff1a;DispatcherServlet初始化过程中做了什么&#xff1f; * 问题3&#xff1a;请求…...

API接口漏洞利用及防御

API是不同软件系统之间进行数据交互和通信的一种方式。API接口漏洞指的是在API的设计、开发或实现过程中存在的安全漏洞&#xff0c;可能导致恶意攻击者利用这些漏洞来获取未授权的访问、篡改数据、拒绝服务等恶意行为。 1.API接口漏洞简介 API&#xff08;Application Progr…...

解决Spring mvc + JDK17@Resource无法使用的情况

问题描述 我在使用jdk17进行Spring mvc开发时发现 Resource用不了了。 原因 因为JDK版本升级的改动&#xff0c;在Jdk9~17环境下&#xff0c;搭建Springboot项目&#xff0c;会出现原有Resource&#xff08;javax.annotation.Resource&#xff09;不存在的问题&#xff0c;导…...

页面禁用鼠标右键,禁用F12打开开发者工具!!!

文章目录 问题分析方法一方法二方法二问题 今天在浏览博主文章时发现无法复制页面上的内容,也无法F12打开开发者工具,更用不了鼠标右键,于是上网找了原因并亲测可用 分析 方法一 将 <body> 改成 <body oncontextmenu=self.event.returnValue=false>方法二 …...

Android中使用JT808协议进行车载终端通信的实现和优化

JT808是一种在中国广泛应用的车载终端通信协议&#xff0c;用于车辆与监控中心之间的数据通信。下面是关于Android平台上使用JT808协议进行通信的一般步骤和注意事项&#xff1a; 协议了解&#xff1a;首先&#xff0c;您需要详细了解JT808协议的规范和定义。该协议包含了通信消…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...