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从菜鸟到高手(二)
引言 💡本文为🔗[从零实现深度学习框架]系列文章内部限免文章,更多限免文章见 🔗专栏目录。 本着“凡我不能创造的,我就不能理解”的思想,系列文章会基于纯Python和NumPy从零创建自己的类PyTorch深度学习框…...
docker监控平台FAST OS DOCKER --1
感觉这个是目前好用的中文平台,暂为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,是Web数据交互方式,是一个基于promise [5]的网络请求库,作用于node.js和浏览器中,它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生node.js http模块, 而在…...
Spring源码深度解析三 (MVC)
书接上回 10.MVC 流程&源码剖析 * 问题1:Spring和SpringMVC整合使用时,会创建一个容器还是两个容器(父子容器?) * 问题2:DispatcherServlet初始化过程中做了什么? * 问题3:请求…...
API接口漏洞利用及防御
API是不同软件系统之间进行数据交互和通信的一种方式。API接口漏洞指的是在API的设计、开发或实现过程中存在的安全漏洞,可能导致恶意攻击者利用这些漏洞来获取未授权的访问、篡改数据、拒绝服务等恶意行为。 1.API接口漏洞简介 API(Application Progr…...
解决Spring mvc + JDK17@Resource无法使用的情况
问题描述 我在使用jdk17进行Spring mvc开发时发现 Resource用不了了。 原因 因为JDK版本升级的改动,在Jdk9~17环境下,搭建Springboot项目,会出现原有Resource(javax.annotation.Resource)不存在的问题,导…...
页面禁用鼠标右键,禁用F12打开开发者工具!!!
文章目录 问题分析方法一方法二方法二问题 今天在浏览博主文章时发现无法复制页面上的内容,也无法F12打开开发者工具,更用不了鼠标右键,于是上网找了原因并亲测可用 分析 方法一 将 <body> 改成 <body oncontextmenu=self.event.returnValue=false>方法二 …...
Android中使用JT808协议进行车载终端通信的实现和优化
JT808是一种在中国广泛应用的车载终端通信协议,用于车辆与监控中心之间的数据通信。下面是关于Android平台上使用JT808协议进行通信的一般步骤和注意事项: 协议了解:首先,您需要详细了解JT808协议的规范和定义。该协议包含了通信消…...
导出pdf
该方法导出的pdf大小是A4纸的尺寸,如果大于1页需要根据元素高度进行截断的话,页面元素需要加 class ergodic-dom,方法里面会获取ergodic-dom元素,对元素高度和A4高度做比较,如果大于A4高度,会塞一个空白元素…...
【考研数学】线形代数第三章——向量 | 基本概念、向量组的相关性与线性表示
文章目录 引言一、向量的概念与运算1.1 基本概念1.2 向量运算的性质 二、向量组的相关性与线性表示2.1 理论背景2.2 相关性与线性表示基本概念2.3 向量组相关性与线性表示的性质 引言 向量是线性代数的重点和难点。向量是矩阵,同时矩阵又是由向量构成的,…...
温故知新之:接口和抽象类有什么区别?
本文以下内容基于 JDK 8 版本。 1、接口介绍 接口是 Java 语言中的一个抽象类型,用于定义对象的公共行为。它的创建关键字是 interface,在接口的实现中可以定义方法和常量,其普通方法是不能有具体的代码实现的,而在 JDK 8 之后&…...
回归预测 | MATLAB实现SSA-RF麻雀搜索优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现SSA-RF麻雀搜索优化算法优化随机森林算法多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现SSA-RF麻雀搜索优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)…...
文旅景区vr体验馆游乐场vr项目是什么
我们知道现在很多的景区或者游玩的地方,以及学校、科技馆、科普馆、商场或公园或街镇,都会建一些关于游玩以及科普学习的项目。从而增加学习氛围或者带动人流量等等。这样的形式,还是有很好的效果呈现。 普乐蛙VR体验馆案例 下面是普乐蛙做的…...
Vue Element upload组件和Iview upload 组件上传文件
今天要分享的是使用这俩个UI组件库的upload组件分别实现调用组件本身的上传方法实现和后台交互。接下来就是开车的时间,请坐稳扶好~ 一、element upload组件传送门 1、html文件 <el-upload ref"uploadRef" :action"uploadUrl" :data"…...
无涯教程-PHP - File 函数
文件系统功能用于访问和操纵文件系统,PHP为您提供了操纵文件的所有功能。 运行时配置 这些功能的行为受php.ini中的设置影响。 NameDefaultChangeableChangelogallow_url_fopen"1"PHP_INI_ALLPHP_INI_ALL in PHP < 4.3.4. PHP_INI_SYSTEM in PHP &l…...
elasticsearch 常用查询 7.4 版本
Elasticsearch 常用查询 match:全文查询exists:查询存在的字段must_not:查询不存在的字段ids:跟据id查询prefix:前缀查询range: 查询范围term:精准查询terms:多术语查询 本文基于es 7.4版本文档…...
ChatGpt 从入门到精通
相关资源下载地址: 基于ChatGPT的国际中文语法教学辅助应用的探讨.pdf 生成式人工智能技术对教育领域的影响-关于ChatGPT的专访.pdf 电子-从ChatGPT热议看大模型潜力.pdf 从图灵测试到ChatGPT——人机对话的里程碑及启示.pdf 正文 ChatGPT 是一种强大的自然语言处理模型&…...
vscode远程调试
安装ssh 在vscode扩展插件搜索remote-ssh安装 如果连接失败,出现 Resolver error: Error: XHR failedscode 报错,可以看这篇帖子vscode ssh: Resolver error: Error: XHR failedscode错误_阿伟跑呀的博客-CSDN博客 添加好后点击左上角的加号࿰…...
小程序怎么做电影网站/企业营销网站建设系统
应用场景: 当列表数据太多时,就会进行分段查询,这就有了查看更多 小编在刚刚开始做的时候也是费了很大的劲,想了三种方案,这就不细说了,来说下最简单的方案 PHP代码: .....其实PHP是不需要处理什…...
网站制作哪些类型/江苏网站seo营销模板
互联网世界的很多理念或者术语,看起来专业无比,仔细想想,在生活里又随处可见。比如推荐。遇见一个美女,看到一本好书,热烈的想要与他人分享的心情;独自待在房间里,渴望与他人建立联系却又无法获…...
在哪些网站可以发布推广信息/社区推广方法有哪些
参考地址 JS 正则截取字符串 1、js截取两个字符串之间的内容: varstr "aaabbbcccdddeeefff"; str str.match(/aaa(\S*)fff/)[1]; alert(str);//结果bbbcccdddeee2、js截取某个字符串前面的内容: varstr "aaabbbcccdddeeefff"…...
访问外国网站速度慢/企业文化的重要性
一、实验目的与要求 了解MFC类的层次结构及主要类的用法,掌握使用MFC和向导来编写Windows应用程序。 要求: (1)掌握MFC类的层次结构及主要类的用法。 (2)使用应用程序向导创建MFC类的Windows应用程序。 二…...
建网站视频教程/站长网站推广
杜洪亮摘 要:通过对济南轨道交通3号线王舍人站~裴家营站区间盾构长距离侧穿高架桥桩施工控制情况进行总结分析,重点论述了辅助措施的重要性,分析了粉质黏土地层中盾构长距离侧穿构筑物不可避免的施工风险,并探讨了盾构穿越该段掘…...
芜湖网站制作/百度关键词搜索量排行
AngularJS是一个javascript框架,通过AngularJS这个类库可以实现目前比较流行的单页面应用,AngularJS还具有双向数据绑定的特点,更加适应页面动态内容。所谓单页面应用就是在同一个页面动态加载不同的内容,而这里的“跳转”可以理解…...