- 博客(426)
- 资源 (53)
- 收藏
- 关注
原创 SpringBoot详解(三)-Spring Boot的web开发
一、web基础配置1、访问静态资源1)进入规则为 / 时如果进入SpringMVC的规则为/时,Spring Boot的默认静态资源的路径为:spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/也就是说,
2017-08-30 23:58:36 8703 1
原创 SpringBoot详解(二)-Spring Boot的核心
Spring Boot的核心在上篇中我们成功运行了一个简单的web应用,其中有一个注解被轻易的带过了,但它在Spring Boot中是最重要的注解,没有之一,它就是@SpringBootApplication,本篇将对它与Spring Boot的配置进行深入的介绍。1、@SpringBootApplication前面已经说过了,一般Spring Boot的Web应用都有一个xxxApplicatio
2017-08-30 23:50:33 3787
原创 SpringBoot详解(一)-快速入门
一、Spring Boot久闻Spring Boot大名,这两天终于得空,学习了一把,发觉Spring Boot确实好用,那Spring Boot到底是什么,又是怎么好用呢?什么是Spring Boot目前ssm框架还是比较常用的,其中的ss指的无非就是Spring 和 SpringMVC,我们可以简单的认为 “Spring Boot ≥ Spring + SpringMVC”,没错,用了Sprin
2017-08-30 23:36:39 5353
原创 仿房产销冠APP销控表界面-多RecyclerView同步滚动
一、简述最近在做一个地产项目,其实之前做出了一版,但现在要求重做(连上架的机会都没有),很服气啊~~而现在做的项目呢,比上一版功能要求更多,其中,销控表的界面效果要求跟房产销冠APP的销控表界面差不多,先来看下房产销冠APP的销控表效果吧:说说我第一次看到这个界面效果时的感觉,就一个词:amazing~ 是的,公司就我一个人做安卓开发,感觉有点压力山大,但是,不怂,静下心来分析一下就明朗多了。先说
2017-07-14 09:09:20 1612
原创 性能优化——内存泄漏(3)代码分析篇
一、简述在上一篇《性能优化——内存泄漏(2)工具分析篇》中,介绍了如何使用工具帮助我们检查APP中是否存在内存泄漏、及如何定位到内存泄漏,但项目并不能完全依赖工具来检查,毕竟定位内存泄漏比较麻烦,还不如在开发时就考虑到内存泄漏问题,尽可能减少内存泄漏,后续优化才不会那么痛苦。下面就来看看开发中,哪些代码可能造成内存泄漏,及避免内存泄漏的对应解决方案。二、代码分析1、静态变量引起的内存泄露1)错误示例
2017-06-30 17:10:38 1279
原创 性能优化——内存泄漏(2)工具分析篇
一、简述在上一篇《性能优化——内存泄漏(1)入门篇》中,介绍了内存泄漏的基本概念,并举了一个Demo,结合简单的代码分析,猜测出Demo中存在内存泄漏,并用Android Studio自带的Memory Monitor证明了我们的猜测,但开发中,业务逻辑可能比较复杂,对象引用繁多,难道都要这样去做代码分析吗?肯定不行,程序员的精力有限,且“很懒”(追求效率),我们需要工具来帮助我们进行分析。下面就来
2017-06-30 14:52:28 1565
原创 性能优化——内存泄漏(1)入门篇
一、简述本篇是作为内存泄漏入门,主要说的是一些关于内存泄漏的概念,包括什么是内存泄漏,内存分配的几种策略,为什么会造成内存泄漏 及 如何避免内存泄漏等。1、避免内存泄露的重要性对于一个APP的评测,最直接的评分点就是用户体验,用户体验除界面设计外,就数APP是否运行流畅较为重要,当APP中出现越来越多内存泄漏时,卡顿特效就会随之而来。类比下电脑,cpu性能低下或内存不足时,程序运行效率就会降低,常见
2017-06-29 15:05:12 2054
原创 SpringMVC单文件上传与多文件上传
一、简述一个javaWeb项目中,文件上传功能几乎是必不可少的,本人在项目开发中也时常会遇到,以前也没怎么去理它,今天有空学习了一下这方面的知识,于是便将本人学到的SpringMVC中单文件与多文件上传这部分知识做下笔记。二、单文件上传1、页面这里以一个简单的表单提交为例子,文件上传需要将表单的提交方法设置为post,将enctype的值设置为”multipart/form-data”。<form
2017-06-22 10:57:32 2359 1
原创 使用正则表达式优雅的解决SpringMVC时间转换问题
一、简述使用SpringMVC接收过时间参数的程序员都应该知道,时间转换是一个令人头疼的问题,虽然这不是什么大问题,解决的方法也有多种,但解决不妥的话感觉起来会很不舒服,因为处理不当会把时间的接收格式写死,如果开发后期想更改时间格式呢?又或者项目要求可以接收不同格式的时间参数的话那又该怎么办呢?这时就可以通过正则表达式来解决这种问题了。下面就来看看如何用正则表达式优雅的解决这种问题。二、全局时间转换
2017-06-21 17:08:34 1256
原创 MaterialDesign之AppBarLayout与CollapsingToolbarLayout的学习
一、简述本文要介绍的AppBarLayout与CollapsingToolbarLayout均是随MaterialDesign出现的新控件,两者的作用呢,可以说就是为了“增强”Toolbar的吧,它们的出现使得Toolbar不再只是那个木讷的”ActionBar”,而是一个真正有灵性,有活力的APP工具条。下面就来看看它们是怎么使用的吧。二、使用1、CoordinatorLayout在使用AppBa
2017-06-13 00:29:46 1550
原创 MVC与三层架构
一、简述在软件开发中,MVC与三层架构这两个专业词汇经常耳闻,同时总有很多人将它们混为一谈,认为三层架构就是指MVC,给它画上等号,但实际上,这是错误的认知,并不是说它们没有任何关系,而是MVC与三层架构不是简单的相等。下面将拿javaweb开发中的MVC(SSM框架)与三层架构进行比较,让大家理清两者之间的关系。二、概念1、系统架构所谓系统架构是指整个应用系统程序大的结构,常见的系统架构有三层架构
2017-05-27 15:09:25 2663
原创 极其方便的系统原生图片选取库,已适配Android 7.0
本项目由 CSDN_LQR 个人独立开发。 本库GitHub地址:https://github.com/GitLqr/LQRNativePicSelect一、简述从 Android 7.0 开始,Android SDK 中的 StrictMode 策略禁止开发人员在应用外部公开 file:// URI。具体表现为,当我们在应用中使用包含 file:// URI 的 Intent 离开自己的应
2017-05-25 14:23:00 3640 4
原创 MaterialDesign之对TabLayout的探索
一、简述TabLayout是Android Support Design库的新控件,可以用来实现开源框架ViewPageIndicator的效果(在MaterialDesign没出来之前基本都用这玩意儿吧~),TabLayout相比它使用上更加简单,且不一定要跟ViewPager一起使用,毕竟谷歌做出来的,稳定性更是不用说啦,下面看它都有哪些操作吧。二、使用1、创建Tab及Tab的点击事件要使用Ta
2017-05-23 10:43:01 3691 1
原创 MaterialDesign之学一波Palette
一、简述Palette,直译为调色板,是v7.graphics包中提供的一个工具类,顾名思义,它可以对一张图片进行色彩分析,开发者可以通过调用Palette提供的方法获取图片中的主题色值等,这为动态获取图片色值的开发需求提供了方便。二、使用Palette提供了2类方法,其中包括2个from()方法,4个generate()方法,但generate()方法已全部过时,这里就不介绍了,主要看from()
2017-05-21 22:24:59 1239
原创 MaterialDesign之SearchView全面解锁
一、简述SearchView是v7包中的一个兼容性控件,它可以单独使用,也可以配合menu+toolbar一起使用。本文将使用第二种方式,对SearchView进行探索。最后将通过代码实战,实现 “仿网易云音乐本地音乐搜索” 效果,带你全面解锁SearchView的UI定制及查询功能的实现。二、常规使用*本文重点是SearchView,所以对Toolbar的使用及注意事项在本文中将不会有过多的体现,
2017-05-19 10:51:47 854
原创 让menu同时显示图标和文字
Activity中的menu条目,在设置其showAsAction=”never”时,默认只显示文字title,而不会显示图标icon,可以在Activity中重写onMenuOpened(),通过反射使其图标可见。// 让菜单同时显示图标和文字@Overridepublic boolean onMenuOpened(int featureId, Menu menu) { if (men
2017-05-17 10:17:49 7909
原创 RecyclerView之使用ItemTouchHelper实现交互动画
一、简述RecyclerView默认就有item动画,例如在增加或删除item时,都会有一个条目间位移的动画,但本文要说的不是这个!!!本文的主角是v7包中的ItemTouchHelper,它跟RecyclerView结合后将会带来神奇的交互效果。示例如下:效果还是比较酷炫的吧,上图中有四步操作:长按item后拖动,与其他item交换位置按住item右面的图标后拖动,与其他item交换位置左滑
2017-05-05 14:43:01 2191 1
原创 RecyclerView之ItemDecoration
一、简述说到RecyclerView大家都很熟悉了,相比于ListView,它具有高度解耦、性能优化等优势,而且现在大多数安卓开发者都已经将RecyclerView用来完全替代ListView和GridView,因为它功能十分强大,但往往功能强大的东西,反而不太好控制,例如今天要说的这个ItemDecoration,ItemDecoration是条目装饰,下面来看看它的强大吧。二、使用ItemDec
2017-05-03 17:18:33 966
原创 LayoutInflater源码分析与应用
一、简述LayoutInflater直译为 布局填充器,它是用来创建布局视图的,常用inflate()将一个xml布局文件转换成一个View,下面先介绍下获取LayoutInflater的三种方式 和 创建View的两种方式。1、获取LayoutInflater的三种方式LayoutInflater inflater = getLayoutInflater(); //调用Activity的get
2017-04-23 13:24:03 737
原创 Material Design 兼容性控件学习
简述Material Design从Android 5.0开始引入,是一种全新的设计语言,称为“原材料设计”,是谷歌提倡的一种设计风格、理念、原则。结合拟物设计和扁平化设计风格,融入了一些科技理念。想深入了解的话,可以查这篇wiki:Material Design 中文版*注:使用下文中介绍的控件,需在项目中引入v7包的支持。正如上面所说,Material Design从Android 5.0开始引
2017-04-22 22:21:24 947
原创 高仿微信6.5.7(融云版)
一、简述 本项目由 CSDN_LQR 个人独立开发。 项目博客地址:http://www.jianshu.com/p/ae5e5ffdb1f1 项目源码地址:LQRWeChatRongCloud 项目DemoApp下载:Demo1、简单介绍一下:这个项目是本人独立开发的第二个高仿微信项目,仿最新版微信6.5.7(除图片选择器外)。本项目基于融云SDK,使用目前较火
2017-04-15 22:50:50 8007 14
原创 高仿微信语音库--LQRAudioRecord
LQRAudioRecord本库集成录音与播音功能,使用简单方便,让IM集成语音不再是难题。一、简述该库可进行语音录制及播放,方便IM项目集成语音功能。录音可获取分贝,并默认回传10秒倒计时。播放时贴耳自动转为听筒播放,离耳时转公放。DemoApp下载码云: https://git.oschina.net/CSDNLQR/LQRAudioRecordGitHub: https://g
2017-04-08 14:48:15 1617
原创 高仿微信表情控件 -- LQREmojiLibrary
LQREmojiLibrary一个超级牛逼的表情库,可使用表情及贴图功能,方便好用,抽离图片加载接口,让开发者自己选择图片加载工具。码云: https://git.oschina.net/CSDNLQR/LQREmojiLibraryGitHub: https://github.com/GitLqr/LQREmojiLibrary一、简述这个库相当牛逼,好用。这个库相当牛逼,好用。这个库
2017-04-08 14:47:04 2912 1
原创 安卓第三方登录之微信登录(图文详解)
一、创建应用并成为开发者1、创建应用1)到微信开放平台管理中心,点击“创建移动应用”2)填写基本的应用信息3)填写平台信息这里还是说一下怎么获取应用签名吧:到“资源中心”–>“资源下载”–>“Android资源下载”,找到“签名生成工具”下载即可。飞机直达:Gen_Signature_Android2将APP进行打包安装到手机(如果是在IDE中直接运行后安装的话,是使用debug签名的,跟上线后
2017-03-21 18:15:21 15231 4
原创 RecyclerView遇到notifyDataSetChanged无效时的解决方案
一、简述不管AbsListView(ListView、GridView)或是新出的RecyclerView,在使用notifyDataSetChanged方法更新列表数据时,一定要保证数据为同个对象(即hashCode要一致)。对于这个问题的论证,可以去看官方源代码,或是看我之前写的一篇博文“解决mAdapter.notifyDataSetChanged()无效问题”,相信可以帮到你。但是,这个不是
2017-03-13 19:18:37 11158 1
原创 Retrofit使用Log拦截器在控制台输出Log
一、使用自定义Log拦截器1、创建自定义Log拦截器类class LoggingInterceptor implements Interceptor { @Override public Response intercept(Interceptor.Chain chain) throws IOException { //这个chain里面包含了request和resp
2017-03-11 16:51:59 4223
原创 Android数据库框架 - LitePal学习笔记
LitePal学习笔记简述LitePal是郭神(郭霖)在2014年的杰作,三年后在github上有了一个更新,故来学习一番,没想到还挺好用,这里做下笔记。LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发时最常用到的一些数据库功能进行了封装,使得不用编写一行SQL语句就可以完成各种建表、増删改查的操作。并且LitePal很“轻”,jar包只有1
2017-03-10 11:59:37 908
原创 Mysql允许远程访问
//进入MySQL服务器d:\mysql\bin\>mysql -h localhost -u root//赋予任何主机访问数据的权限mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;//使修改生效mysql>FLUSH PRIVILEGES;//退出MySQL服务器mysql>EXIT;如果按上述操作过
2017-03-08 16:49:59 512
原创 toolbar的navigationIcon不垂直居中显示
解决方法:把toolbar的height设置为wrap_content即可。 若有特别的高度要求,通过同时设置height以及minHeight即可。原理:minHeight的值决定了居中轴的位置,居中轴的位置始终为minHeight的一半,minHeight有默认的缺省值,而height设为wrap_content时,高度恰好为minHeight的缺省值,所以居中轴恰好为当前高度的中心,所以达到
2017-03-02 11:53:16 2270
原创 带你高效学习MVP+RxJava+Retrofit
引言自上次用老旧的mvc做了一个仿微信项目之后,我给自己做了一个短期的规划,先把MVP+RxJava+Retrofit这新的安卓三剑客给学了,于是,经过一个多星期的折腾,总算是对MVP+RxJava+Retrofit入了门。经过这两年的洗礼,这三门技术不断成熟稳定,得到了广大程序猿的一致认可。网上有许多优秀的文章对这三门技术进行讲解,所以,本文只作为一个学习指引,罗列出本人学习 这三者和lambda
2017-03-01 10:09:03 2237
原创 ButterKnife 报Unable to bind views for
这个问题 请检查一下几点: 1. fragment/Activity对应xml中是否存在要绑定的控件id; 2. 检查 @OnClick({R.id.feedback_send_tv}) 处是否绑定了当前fragment/Activity对应xml不存在的控件id(之前就因为这次原因报的类似错误)。
2017-02-22 16:39:11 1637
转载 MeasureSpec中三种模式:UNSPECIFIED,AT_MOST,EXACTLY
在自定义View和ViewGroup的时候,我们经常会遇到int型的MeasureSpec来表示一个组件的大小,这个变量里面不仅有组件的尺寸大小,还有大小的模式。这个大小的模式,有点难以理解。在系统中组件的大小模式有三种:精确模式(MeasureSpec.EXACTLY) 在这种模式下,尺寸的值是多少,那么这个组件的长或宽就是多少。最大模式(MeasureSpec.AT_MOST) 这个也就
2017-02-06 09:32:53 3670
原创 去掉RecyclerView的默认item动画
虽说RecyclerView的默认item动画很炫酷,但是在开发中,客户的需求可能并不需要使用item动画,不仅觉得没用,反而觉得这些item动画是程序的bug。本人在做开发仿微信项目时就遇到这类问题,动态增加、删除条目时就有一个切换的动画,这明显不是我想要的,于是百度,百度到一篇有点用的文章(RecyclerView局部刷新动画屏蔽),文章说到的只是针对RecyclerView的notifyIte
2017-01-28 08:27:47 12503 4
转载 Android EditText 设置键盘 搜索,回车
android的EditText在输入的时候,软键盘的回车键,可以变成搜索键、回车键、下一项或完成,这些是怎么设置的,又是怎么响应的呢。在Layout文件中,对EditText的设置如下: 加上属性:android:imeOptions=""这个属性的可输入的值分别代表的含义:actionSearch: 搜索actionSend: 发送actionNext: 下一项同样,也可在acti
2017-01-15 11:29:24 848
转载 v7.widget.SearchView的使用
我们的项目中很多的搜索功能都是通过SearchView来实现的,因为这个控件给我们封装了很多功能,也正因为这个,SearchView很多样式不好控制,比如输入框的背景图片,输入框的字体颜色等等! 不过如果看过源码的朋友就能轻松实现这些。ok,来看下SearchView的使用步骤 1、定义 menu.xml<menu xmlns:android="http://schemas.android.co
2017-01-15 09:59:34 1203
转载 ToolBar和SearchView的使用总结
众所周知,在使用ActionBar的时候,一堆的问题:这个文字能不能定制,位置能不能改变,图标的间距怎么控制神马的,由此暴露出了ActionBar设计的不灵活。为此官方提供了ToolBar,并且提供了supprot library用于向下兼容。Toolbar之所以灵活,是因为它其实就是一个ViewGroup,我们在使用的时候和普通的组件一样,在布局文件中声明。Part1:ToolBar的引入step
2017-01-15 09:23:52 985
原创 MediaRecorder的几个常见坑
一、问题代码private void initRecord() throws IOException { mMediaRecorder = new MediaRecorder(); mMediaRecorder.reset(); if (mCamera != null) mMediaRecorder.setCamera(mCam
2017-01-11 20:39:47 30304 2
原创 获取任意View在屏幕上的坐标
1、直接上代码:int[] location = new int[2];view.getLocationOnScreen(location);2、其他相关方法介绍:① getLocalVisibleRect , 返回一个填充的Rect对象, ?? sdk上也没注释,根据经验应该是获取控件相对在父亲里的一个Rect对象,left,top取到的是0②getGlobalVisibleRect , 获取
2017-01-11 09:09:43 1298
原创 简单去掉EditText的下划线
<EditText ... style="?android:attr/textViewStyle" android:background="@null" ... />
2017-01-10 14:44:35 2623
原创 mybatis模糊查询
mybatis的逆向助手确实好用,可以省去很多编写常规sql语句的时间,但是它没办法自动生成模糊查询语句,但开发中模糊查询是必不可少的,所以,需要手动对mapper编写模糊查询功能。 这里先明确MyBatis/Ibatis中#和$的区别: 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时
2017-01-07 08:48:09 1151
三级缓存网络图片查看器
2016-05-22
默认使用DES加密聊天信息的SocketChat(内含DES与RSA加密工具)
2016-05-19
视频缩略图和显示的缓存异步机制
2016-05-15
ViewPagerIndicator
2016-05-09
SlidingMenu侧边栏的lib及实例
2016-05-08
获取缓存及清理缓存会用到的aidl文件
2016-04-18
安卓shell工具RootTools.jar
2016-04-16
安卓桌面小火箭发射
2016-04-16
安卓挂断电话用到的aidl
2016-04-15
利用Filter全局中文过滤(get和post请求中文乱码问题)
2016-10-23
使用ThreadLocal解决代码分层问题
2016-10-22
使用jar使用验证码功能(ValidateCode.jar )
2016-10-15
使用makefile编译多个.c文件例子
2016-08-13
commons-beanutils-1.8.3-connections.jar
2016-07-01
genymotion 5.0以上的 ARM_Translation
2016-06-29
android vitamio在线视频播放demo
2016-06-29
Genymotion-ARM-Translation_v1.1
2016-06-29
xstream-1.4.7
2016-06-18
xml的解析、生成工具
2016-06-18
java解析json的工具--json-lib
2016-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人