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

news2024/12/27 3:52:28

前言:

       针对不同群体的需求,想着应该拓展写方向。医疗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 = true
        testInstrumentationRunner "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,否则用 compile
    implementation "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 GradleDependency
    implementation '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();
}

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/891299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3中将表格导出excel的方法(极简且有效)

🥰博主:小猫娃来啦 🥰文章核心:vue2或vue3中将表格导出excel的通用方法 文章目录 安装依赖,导入模块需要注意的完整导出代码原理效果 安装依赖,导入模块 安装 npm i xlsx 或者 pnpm i xlsx导入 import *…

图片转换pdf怎么转换?这几种方法很好用

图片转换pdf怎么转换?将图片转换为pdf可以使你更方便地分享和存储文件。相比于图片格式,pdf格式更加通用,可以在不同的设备和操作系统上打开和查看。此外,pdf格式还可以更好地保护你的文件,可以设置密码保护和防止复制…

vue3 基础知识(webpack) 02

你好,今天过的怎么样呀,嘿嘿,加油夏 💕 文章目录 一、组件二、如何支持SFC三、webpack 打包工具 一、组件 使用组件中我们可以获得非常多的特性: 代码的高亮;ES6、CommonJS的模块化能力;组件作…

WPF的CheckBox中的三个状态

WPF的CheckBox中的三个状态 CheckBox控件和RadioButton控件是继承自ToggleButton类,这意味着用户可切换他们的开关状态,其中IsChecked属性是可空的Boolean类型,这意味着该属性可以设置为true,false或null。 null值表示不确定状态…

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测 目录 分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测分类效果基本描述模型描述程序设计参考资料 分类效果 基本描述 1.Matlab实现WOA-CNN-BiGRU-Attention多特征分类预测,多特征输入模型&…

看完尤雨溪知乎343条回答,我学到了这些!

最近看完了尤雨溪的知乎 343 条回答和 25 篇文章,记录下一些内容(每条仅摘录部分内容),分享给大家! 怎么才能有尤雨溪一半强,该怎么学习? 我更愿意把 “强” 理解为 “制造 impact 的能力”&a…

如何在vue3中封装并使用echarts组件

一. 安装echarts npm install echarts --save 二. 按需加载创建一个echarts文件夹,并创建配置文件 //引入echarts import * as echarts from echarts/core//引入柱状图,折线图 import { BarChart, LineChart } from echarts/charts// 引入提示框&#x…

论文及代码详解——可变形卷积(DCNv1)

文章目录 论文详解Deformable ConvolutionDeformable RoI PoolingDeformable ConvNetsUnderstanding Deformable ConvNets 代码详解 论文:《Deformable Convolutional Networks》 论文详解 Deformable Convolution 普通卷积的数学表达 普通的二维卷积包括两个步骤:…

小知识积累

1、使用JSON.parse(JSON.stringify()) 深拷贝时会出现的问题 var obj {a: "zs",b: undefined,c: Symbol("score"),d: null,e: function () {console.log("show");},};console.log(JSON.parse(JSON.stringify(obj)));很明显undefined、函数、sym…

Netty+springboot开发即时通讯系统笔记(三)

实现长连接负载均衡策略 登录成功返回登陆的im地址。 1.在公共模块里写个RouteHandle接口,然后他的实现类去实现不同的均衡策略。 2.在业务模块的config文件下的beanConfig中定义一个Bean routeHandle,从配置文件中获取不同的负载均衡策略来初始化Rou…

苹果电脑会自动清理垃圾吗 苹果电脑系统垃圾怎么清除

苹果电脑是很多人喜欢使用的一种电脑,它有着优美的外观,流畅的操作系统,丰富的应用程序和高效的性能。但是,随着时间的推移,苹果电脑也会产生一些不必要的文件和数据,这些文件和数据就是我们常说的垃圾。那…

半导体退火那些事(2)

2.半导体退火的作用 2.1改善半导体的电学性能 退火过程中,材料中的缺陷得到修理,杂质原子和材料内的杙错得到排列,位于能带中动力学的载流子少,能级也就相对于更加密集。因而在退火之后,半导体材料中的电子、空穴浓度…

RabiitMq-4工作队列/消息应答

1.工作队列 工作机制类似一个生产者,多个消费者。工作队列采用轮训的机制,即工作线程一次只能处理一个消息,轮流处理 公共方法 public class MqUtiles {public static final String QUEUE_NAME"hello";public static Channel fu…

预防SQL漏洞注入和规避网络攻击

前言: 虽然近些年SQL注入已经被各类的安全开发框架规避了绝大部分,但SQL注入作为一种最原始的攻击手段之一,破坏力仍然十分强大,因为它直捣黄龙数据中心。所以未雨绸缪,各位不可不重视。 预防SQL注入方法措施: 服务器…

【微信小程序】阶段开发总结2

【微信小程序】阶段开发总结2 《工欲善其事,必先利其器》 一、选择器组件Picker 由于业务需求,需要比较个性化的时间Picker组件和基础Picker组件,便基于微信提供的 picker-view 自行封装了两个Picker组件。 基础Picker: 代码示…

低代码平台这5大选型要素值得参考

伴随低代码的流行,选购低代码成为越来越多人需要面临的挑战。选平台容易,换平台难。不同的企业场景不同,对低代码平台的需求也不一样。因此在做出技术选型时,有五个关键要素需要考虑。 要点1:是否符合自身需求 这是最核…

[JavaWeb]【四】web后端开发-SpringBootWeb入门

目录 一 Spring 二 SpringBootWeb入门 2.1 入门需求 2.2 分析 2.3 开始创建SpringBootWeb 2.4 创建类实现需求 2.5 启动程序 2.6 访问 三 HTTP协议 3.1 HTTP-概述 3.2 HTTP-请求协议 3.3 HTTP-响应协议 3.3.1 响应状态码 && 响应类型 3.4 HTTP-协议解析 前言…

【一】ubuntu20.04上搭建containerd版( 1.2.4 以上)k8s及kuboard V3

k8s 部署全程在超级用户下进行 sudo su本文请根据大纲顺序阅读! 一、配置基础环境(在全部节点执行) 1、安装docker 使用apt安装containerd 新版k8s已经弃用docker转为containerd,如果要将docker改为containerd详见&#xff1a…

6、Mysql免安装版本的配置与使用(2023-08)

1、下载 官网:https://www.mysql.com/downloads/ 点击前往 1.1 官网首页 1.2 首页往下翻,到达下图点击 1.3 选择如图Mysql Cimmunity Server 1.4 选择版本 1.5 点击开始下载 2、安装 2.1 配置环境变量 打开电脑环境变量,在环境变量path中…

抖音矩阵系统源代码部署开发详解

一、引言 抖音矩阵系统是一款基于抖音平台的自动化短视频创作和发布工具。通过对源代码的部署和开发,可以实现大规模、高效率的短视频生产和发布,提高抖音账号的曝光量和关注度。本文将详细介绍抖音矩阵系统源代码的部署和开发过程,帮助读者…