![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
一切尽在掌握中
文章平均质量分 75
爱看美剧真是太好了
这个作者很懒,什么都没留下…
展开
-
有点疑问 了解中,未完待续
1.导语一个Android项目中有各种生命周期,比如 Activity、Application、Dialog,这些正常情况下我们都非常熟悉了,这里我用一个例子来测试下。通过此demo学到了很多平常不可见的知识,同时也引发一些思考。2.干货2.1 application这里先单独将 application 拿出来,继承 Application,然后重写其中的 onCreate (创建应用程序)、onT原创 2018-02-01 15:13:04 · 164 阅读 · 0 评论 -
计时器实现---填上时区坑
1. 导语项目有个计时器需求,如下图,本来以为挺简单,但是其中竟然涉及到时区的问题。 效果图如下 2. 解决关键代码比较简单毫秒 转成 时分秒 HH:ss:mm 格式而已定时刷新和改变控件上的时间这里的定时改变时间同时刷新到控件上,我使用的是timer 、timerTask 、Handler 实现,这是属于定时做某事的知识,不是这里要说的重点,直接上代码 timer原创 2018-01-23 16:51:24 · 298 阅读 · 0 评论 -
自定义仪表盘MyDashBoardView 实时修改最值和当前值
1.写在前面 项目中做了个仪表盘效果,需要支持在java中实时更改最大值以及当前值,效果图如下 同时我这里处理了下,让它可以支持float类型的数据 2.实现 首先这个自定义view没有涉及事件分发和动画,纯粹全部都是draw,所以是个练手的好机会。对这个view分析下,可以分为如下几部分 我们需要做的就是按部就班的全部画出来即可。 2.1 外弧 我这里方法可能一别原创 2018-01-02 22:11:03 · 2277 阅读 · 5 评论 -
科学的解决Http Token拦截器TokenInterceptor实现【详细 一篇足矣】
1.写在前面公司开发新的项目,因为这个项目比较偏向金融方向,与钱有关,所以接口比较严谨。先说下全部情况,我这边Http 方式采用的是 OKhttp+Retrofit 后台一共分为三种token,分别是实名token(accessToken),匿名token(oauthToken),刷新token(refreshToken),不同的token用途不一样,有的作为请求参数放在请求体中,有的作为头部原创 2017-12-21 20:11:38 · 17668 阅读 · 3 评论 -
貌似淘宝下拉PopWindow筛选【动画、列表、位置】
1.写在前面最近做了个pop需求,以前写过pop,比如 点击照片时,从底部弹出一个pop,里面可能包含 拍照 相册 取消类似这种,相比以前的pop,现在的需求不一样。 1.位置。并不是从底部移动上去 然后移动下去; 2.列表数据。里面的数据也不是定死的,从接口获取,可能只有一条,可能有N条,不同的用户不一样。 3.动画。因为数据的原因,这里并不能使用translate,比如加入某一用户的数据很原创 2017-11-29 11:35:47 · 1600 阅读 · 0 评论 -
获取WIFI列表及连接WIFI【适配6.0】 这一篇真的够了
1.写在前面项目中需要获取wifi列表同时连接wifi,本来这种需要以前做过的,感觉挺简单的,后面发现坑比较多,看了很多博客和资料总是有些问题解决不了,比如兼容android6.0版本,到底需要动态申请哪些权限,以什么样的方式友好提示用户,怎样监听wifi连接成功或者失败 或者wifi列表的变化等等,现在需求完成,总结下吧! 2.步骤分析进入页面。检测wifi开关是否打开,权限是否原创 2017-11-27 22:12:39 · 15976 阅读 · 22 评论 -
MPAndroidChart之LineChart使用
1.写在前面我很纠结着标题该怎么取,因为对于这个图表框架我只使用了linechart,但是用的非常非常的多,公司很多地方都是折线图。因为项目有关折线图的功能基本都完了,所以抽出一部分东西出来记录下来。这里抽出的效果图如下: 领导具体的要求有这么几点: 1. 第一个折线图表示实时功率,后面的月 年 总体都是发电量,并且日实时功率要充满(就是fill),其他的不用; 2. 日实时功率图表原创 2017-10-28 21:34:00 · 5774 阅读 · 1 评论 -
项目gradle学习实践之路(2)
写在前面我前面学习了怎样配置签名之类的可以瞧瞧 但是配置完成后发现所有的签名数据都是明文显示在代码中,这样总是不太好,特别在协同开发时,可能你不希望所有人都能看到这些东西(毕竟机密)。所以来给他隐藏隐藏,并且根据不同情况来有不同的隐藏方式,比如:1.如果独立开发或者开源项目,只要稍微隐藏下就可以了,其他人知道也没事。2. 如果多人开发希望只是我一个人知道,提交上去后,不让其他开发知道。 实践1.原创 2017-10-25 17:22:30 · 250 阅读 · 0 评论 -
项目gradle学习之路(1)
1.写在前面一般在项目开发中,我们打包时每次可以通过as提供的UI界面来操作,步骤一般是 Build-->Generate Signed APK,这种比较简单这里内容不错。但是在实际开发中,这样比较麻烦,并且 如果我们在使用第三方的服务,比如微信第三方登录时,在创建项目时它一般要我们填写签名的SHA值,无疑,我们填写的是发布版的签名,但是这样就导致在平时测试时很麻烦,因为我们在AS点击运行按钮原创 2017-10-25 15:27:46 · 291 阅读 · 0 评论 -
貌似Keep登录首页 图片在背景移动
1.效果图 因为只能传2M以下的图片,所以移动的效果看不出来。 这种图片在背景慢慢移动好像在好几个APP中看到了,记得以前版本的QQ也有,现在没了,Keep还有,就是一个translate动画(不知道Keep是不是这样做的,效果差不多)。2.干货做这个思路主要就是写一个translate动画xml文件<translate xmlns:android="http://schemas.androi原创 2017-10-31 10:51:54 · 2040 阅读 · 0 评论 -
APP性能优化之过度绘制【项目实践】
1.写在前面最近公司的项目版本刚更新所以有点时间,估计接下来不是对APP进行性能优化就是代码重构。刚好一直对过度绘制非常感兴趣,而且弄完才发现,对于过度绘制我们越早重视后面需要做的事情就越少。 对公司项目的过度绘制问题处理进行处理后,虽然好像肉眼或者感觉体验不出是否优化了(^_^!!),但是凭借工具可以知道确实已经优化了。2.干货A.概念我在之前一直对过度绘制了解太片面了,以为多个布局不断嵌套,然原创 2017-10-30 10:37:15 · 632 阅读 · 0 评论 -
RxJava操作符Merge--解决单个页面多个请求情况
1. 写在前面我们在开发过程中经常会碰到一个页面需要请求多个接口然后刷新界面数据,当然做这种需求的解决方式有很多,但是都不是很好 比如后台更改接口,所有数据做成一个接口 后台系统一般来说比较成熟,而且开发进度在前端前面,一般不会为了前端做出很大的改变,并且需求是一只加,谁也不清楚,一个界面需要的数据到底需要多少,包括后台一个接口接着一个请求,请求成功或者失败做其他接口的请求 这样子当然可以,但原创 2018-01-09 13:51:17 · 8578 阅读 · 5 评论 -
MarginLayoutParams使用总结
导语:相对来说平时使用 LayoutParams 较多,但是最近在看自定义view时,发现使用 MarginLayoutParams 更多,所以在这里对它做个总结1. MarginLayoutParams是 ViewGroup.LayoutParams 的子类 再看看 ViewGroup.LayoutParams 有多少子类,后面用的着 2. 使用我总结了下,一般我们会在哪些地原创 2018-02-03 11:22:40 · 3572 阅读 · 1 评论 -
【从零开始 图文详解】IDEA整合SSM框架:Spring+SpringMVC+Mybatis
1 准备 IntelliJ IDEA Tomcat JDK Maven mysql spring、springmvc、mybatis 了解现在假设如上条件你都具备,那么通过我这篇博客 你一定可以整合出 SSM 框架,完成如下效果 整个博客共分为三部分:建立 基于 Maven 的 WEB 项目,启动 Tomcat ,项目启动整合 Mybatis+Spring原创 2018-05-08 15:28:25 · 3164 阅读 · 1 评论 -
GreenDAO在项目中使用 配合完成自动补全完成搜索
1.前言项目中需要做一个类似“即时搜索”功能,比如 当然我们的需求不一样,所以不能用 AutoCompleteTextView 完成需求,并且我们在实际项目中也很少使用它来完成功能,体验 效果实在不咋地。 可以看看我使用 数据库完成的效果。 不管从搜索速度 还是准确性 还是 UI 设计上都符合要求。具体完成思路: 准备好一个集合,将数据循环遍历插入到数据库表中,然后监听 EditText原创 2018-04-24 09:10:07 · 307 阅读 · 1 评论 -
Java一行代码控制shape 优雅的解决 Drawable Shape 文件繁多问题
1. 前言我们知道开发中很多图片可以用 shape 代替,但是当项目过大,功能增多,我们会发现 Drawable 文件夹下面的 .xml 文件越来越多,比如下 我们会发现,很多文件都类似,只是颜色 大小等不一样而已,所以每次碰到用到 shape 的地方还得新建 shape .xml 。这样既麻烦并且会造成 drawable .xml文件过多。 所以我希望项目中只建立几个典型常用的 shap原创 2018-04-12 17:15:54 · 3611 阅读 · 0 评论 -
android layer-list 使用进阶
1.前言今天修改 UI 界面,如下图 左右两边“前一天 后一天”背景是一个【弧形+矩形】结合体,因为 shape 只能画 矩形、圆环 、椭圆,所以明显达不到要求,所以要么 使用图片 要么自定义 view 画出来,个人感觉都不太好,突然抖机灵 以前使用 layer-list 画 view 的阴影,感觉可以使用 layer-list 达到效果,果然。 2.简介layer-list 本身 lay原创 2018-04-08 11:38:25 · 1110 阅读 · 0 评论 -
Android集成微信支付跳坑指南
1. 前言“好记性不如烂笔头”,现在 平常 碰到的一些知识点都是直接复制到印象笔记中,但是那些资料都比较零散,该总结的还得总结。前段时间完成了在线支付的微信支付,趁着一些注意地方没忘记,这里记录下来吧!2. 准备这里我不想吐槽,微信支付 比 支付宝 支付准备工作 麻烦不知道多少倍,我记忆中有三个地方的审核,当然这些不是开发内容,可能随时会变,开发时具体是什么就是什么,我这里只是给大家提个醒。企业认原创 2018-03-05 15:20:49 · 461 阅读 · 0 评论 -
完全解析 IDEA JRebel 热部署的安装激活使用
1.前言太强大了 太强大了,IDEA 功能简直高了 Eclipse 一个珠穆拉玛峰,在 ecpise 上每次修改点代码都要 重启 tomcat 或者重新部署,实在受不了。在 IDEA 上通过插件 JRebel 可以实现代码的热部署,其中包括 修改 .js .css 资源文件 、.java 的 class 类 还是 spring 的配置文件,都能实现修改后,运行立马生效 不用重启 tomcat 等等原创 2018-03-09 10:25:05 · 3935 阅读 · 4 评论 -
项目快速实践--SVG【十万个为什么】
一、导语这两天学习了下 SVG 在项目中的使用,学到了以前很多不知道东西,在这里打算以问答的形式作个总结。 这里主要针对项目中使用 SVG 实践性的总结,比较注重实用性,所以一些基本概念想了解,可以去 Android群侠传 学习。二、问答 项目中使用 SVG 的好处?SVG总结起来用两个优点,首先最主要的放大不会失真,其次相对同样的图标.png,图标.svg...原创 2018-02-28 18:00:15 · 253 阅读 · 0 评论 -
Java设置View 的 Layout_Gravity 和 Gravity
1. 前言Layout_Gravity 和 Gravity 的含义和区别大家都熟悉,但是在java代码中怎样对一个控件设置它的 Layout_Gravity,Gravity 呢,这里我用一个例子来测试下。2. 干货如下图,有三个按钮,第三个按钮是被测试的对象,点击第一个按钮,会对第三个按钮设置它的 Layout_Gravity ,点击第二个按钮,对对第三个按钮设置它的 Gravity 。 <原创 2018-01-30 10:00:09 · 4022 阅读 · 0 评论 -
最后一刻完成了 UI 的需求--验证码动画
1. 前言 最近在干一件大事,好像很久没写博客,周末虽然忙了两天但是没看书也没干啥,失败的周末。。。上周五在群里看到一个需求,如下图。已经工作上已经闲了一周了,反正自己在做自己的事情,就试着写了下,没想到竟然做不出下面的需求。 很容易看出来 UI 想要的效果,无非点击对应控件,背景滑动。2. 实现 分析下: 1. 点击黄色背景滑动,说明布局时应该要使用到 FrameLayout ,原创 2018-01-29 15:47:03 · 363 阅读 · 0 评论 -
项目实践--混淆【详解】
1.写在前面我花了两三天时间来弄当前我公司开发的这个项目,其实我一直在想为什么要混淆这个项目。不混淆的原因有很多: 1.反正小项目,就算被反编译了又怎样,无所谓,再说混淆了,别人想反编译花点时间照样轻松破解。 2.混淆后测试是个大问题,我们给测试或者上线的项目一定是经过混淆的项目,但是平时开发开启混淆调试代价太大了,太浪费时间了,所以有时候我们在debug版本下测试完成没问题,结原创 2017-10-27 16:45:45 · 645 阅读 · 0 评论 -
拍照相册和裁剪保存图片集合
1 写在前面前两天看了下别人保存图片的方式,又看了郭大神的第一行代码的拍照和打开相册,又研究了下对图片的裁剪,然后合在一起做了个demo,以后要用直接copy代码就可以了。先说说这个代码比网上其他的代码好的地方。 * 在打开摄像头拍照时兼容了7.0获取uri的方式; * 打开相册通过uri获取bitmap时使用郭神的方法和框架提供的方法,查了下资料没发现这两种方法的区别以及对比,后面会说; *原创 2017-02-24 13:07:24 · 2847 阅读 · 6 评论 -
WheelView地区选择三级联动详解
1. 效果最近需要做一个地区选择的功能,但是在网上和github上找了很久都没找到满意的,然后朋友推荐了一个给我,我花了点时间把代码大致看懂并改成我想要的,并写上我的理解。效果如图: 2. 注意a. 首先我们要明白,网上这写三级联动的demo,不管是把数据库文件放在raw还是assets中,我们都要进行复制,将这个文件复制到app目录下,即/data/data/"+context.getPac原创 2017-02-14 00:16:05 · 2450 阅读 · 0 评论 -
轮播图片的状态栏沉浸
1. 效果最近碰到这种类似需求,然后做出如图所示的效果。 源代码地址:github ,如果对你有帮助希望给个star。2. 干货给RecyclerView添加header,这里我使用的是这位大佬的库,添加header ,内容有点多, 但是我们如果要用,就是其中一部分就可以了,等下见代码。当图片在顶部时,会将图片沉浸到状态栏,用到这位大佬的库,沉浸状态栏工具 ,封装的很好,原原创 2017-02-08 14:59:47 · 3028 阅读 · 0 评论 -
StatusBarUtil 状态栏工具类(实现沉浸式状态栏/变色状态栏)
1.声明最近app为了跟ios一致,要做沉浸式状态栏,所以听说了这个库,为了以后再用,所以转载。这位大佬厉害。大佬的地址: github 博文原地址 借个楼,根据他的代码,我写了个类似轮播图片的沉浸式状态栏,地址2.博文这是一个为Android App 设置状态栏的工具类, 可以在4.4及其以上系统中实现 沉浸式状态栏/状态栏变色,支持设置状态栏透明度,满足你司设计师的转载 2017-02-08 11:28:17 · 8563 阅读 · 0 评论 -
android自定义验证码demo
1. 原因 最近看了鸿洋大神的自定义控件博文,学到了很多,根据他的代码,并且加了些东西做了这个验证码。效果如下,大神博文地址鸿洋大神自定义。2. 注意的地方 1.当初大神写那篇文章时还是eclipse,我们在as中这里要写成如图所示。 2.在onDraw中绘制了干扰部分,我这里的干扰由两部分组成,一个是干扰圆点,一个是干扰线。代码如下3. 加了个供原创 2017-01-17 17:02:23 · 362 阅读 · 0 评论 -
酷炫的图片轮播框架AndroidImageSlider
1. 效果先行 先上一张最简单,最普通的效果图。2. 是你想要的么? 这个框架使用起来非常简单,简单的说起来就是三步。第一:添加依赖dependencies { compile "com.android.support:support-v4:+" compile 'com.squareup.picasso:picasso:2.3.2'原创 2016-12-08 20:46:19 · 1938 阅读 · 1 评论 -
MaterialRefreshLayout和ScrollView的冲突问题
1. 缘由 今天在开发过程中突然发现MaterialRefreshLayout和ScrollView存在冲突。在说明这个冲突前,必须要清楚,ScrollView中可以包含一个子View,但是一定要注意是一个,比如我们不能用ScrollView包含一堆的TextView,ImageView,等等其他控件,但是可以通过一个LinearLayout将这些控件包含起来,这样使用ScrollView就原创 2016-12-05 17:20:19 · 1066 阅读 · 0 评论 -
很好用的设置RecycleView的ItemDecoration的框架FlexibleDivider
1. 是不是你想要的 最近这RecycleView的流行,这对它的褒贬两极分化,其实相比listview确实RecycleView更加灵活,但是我坚信更灵活就意味着更复杂,很多人表示itemdecoration这没有提供简单的样式,所以看的手动写,非常懵逼,其实我也是,所以到处搜,然后在github上找到一个框架,地址框架详情。废话不多说,看图!!2. 干货 其中上原创 2016-12-04 23:29:53 · 753 阅读 · 0 评论 -
带翻页标志的横向滑动GridView
1. 先看效果图 开始这是我app的UI图。这是我最后做出来的效果图2. 是你想要的么 如果你们项目也是需要做成这样,恭喜你可以省下很多时间了,其实整个效果最难的的我认为是为每页添加标识,如果只是做一个横向滑动的的九宫格GridView那还是不难,网上类似的文章很多,最难的是不知道数据库给你多少数据,所以这页数是不确定的,比如我这个,假如8个一页,如果数据库原创 2016-12-02 19:53:50 · 638 阅读 · 0 评论 -
流行的界面切换FragmentTabHost详解
1. 前戏 当前80%的移动客户端都是此种布局,包括主流的QQ,微信,通过下方的控制tab来操作进行切换当前的界面,当然方法有很多,但是能有封装,能有控件我认为当然用可行的,废话不多说了,看图。2. 干货 xml布局如下,一定要注意几点:1.这个布局为了要用weight,所以一定要使用LinearLayout布局2.为了优化fragment之间切换的流畅和灵活性原创 2016-11-10 16:28:28 · 3290 阅读 · 0 评论 -
撸一把TabLayout+ViewPager
1.前言 其实我后面才知道TabLayout不仅仅可以和ViewPager配合,也可以用TabItem配合,但是我只是试了ViewPager。废话不多说,直接看图,这是一种类似UC浏览器样的标签和页面联动的效果。。其实我这只是涉及了皮毛,并没有把TabLayout一撸到底,有耐心的可以看下android的开发者文档,后面会附上链接,会有很大的收获的。2.干货 xml布局如下,其中T原创 2016-10-29 18:21:59 · 733 阅读 · 0 评论 -
Android Annotation的一些简单使用
1. 配置根据github上github可以知道annotation(后面简称AA)怎么在as项目中配置的。 因为我的as中gradle版本是2.2的,还不能使用2.3中内置的插件,所以还是要配置apt 在根gradle中将复制进去classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'buildscript { reposito原创 2017-03-20 15:17:44 · 446 阅读 · 0 评论 -
Material Design之toolbar的自定义小封装
1. 写在前面最近看了很多toolbar的知识,但是感觉内容都大同小异,比如这个 还有这个 还有这个 而且对于实际项目并没有什么用,所以我自己总结下。先看图,这是大众点评里面的页面 其实很多app如果用到toolbar大致可以包含两种,一种是首页的toolbar非常复杂而且巧妙比如前面两张图,还有一种很简单,但是很多页面都用的着比如后面两张图。所以我认为: 1.如果是比较原创 2017-03-02 14:45:09 · 1011 阅读 · 1 评论 -
AsyncTask的详解与服务的结合下载文件例子
1. 写在前面前面一两个月一直在赶需求,不管什么功能先在网上或者github上找到做出来再说,最近半个月没事做,一直在改代码。发现以前项目中的软件更新没做好,刚好看到郭神书里面这文件下载例子用于更新下载不错,让后台下载任务在服务中执行,然后通过activity和服务绑定,使activity和service可以进行通信。并且好好的学习了asyncTask,现在框架用的比较多,很少有机会接触到这个了。这原创 2017-03-01 11:07:14 · 916 阅读 · 0 评论 -
通过回弹效果理解Scroller
1.写在前面通过整个博客以及例子的布局回弹效果理解以及搞清楚以下几个点: 1. Scroller的使用(这里学习了谷歌的小弟 这个大神的,在他的博客中学到了很多关于Scroller知识,但是因为他水平太高,很多初级的东西没讲解,所以通过打断点以及写log弄明白很多未知的知识); 2. GestureDetector.OnGestureListener中onScroll(MotionEven原创 2017-04-27 22:48:14 · 4096 阅读 · 0 评论 -
快速获取debug.keystore和release.keystore的SHA1或者MD5值
1. 写在前面我们在使用第三方服务时一般要申请key,而申请key一般需要包名或者SHA1。一般这个SHA1值分为两种,测试版和发布版。可以分别通过debug.keystore和release.keystore获取。2.干货获取debug.keystore的方法有两种,先说一种最快速的,进入as项目中,如图 第一步,左边在android方式下查看项目, 然后点击gradle scripts原创 2017-05-09 23:42:51 · 10001 阅读 · 0 评论 -
在XML中为layout设置阴影
1.写在前面因为有这个需求,所以搜很多资料,也看到了很多方法为layout添加阴影但是最好的方法我感觉是如下两个 github地址,项目中使用 github地址,并没有用它 我使用的是第一个,原因主要两天:1.使用说明详细 2.star比第二个多很多 。但是比较蛋疼的是这个使用指南全是英文,所以一些添加阴影的属性不知道什么意思。所以我写了个demo测试了下这些属性。所以写这个博客主要是熟原创 2017-05-25 22:07:59 · 10450 阅读 · 2 评论