自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海阔天空

Java+Android

  • 博客(56)
  • 资源 (8)
  • 收藏
  • 关注

原创 Android实现自定义各类Dialog对话框和样式美化(含Toast)

背景基本上每个APP中都会使用到Toast和Dialog,但多数时候我们有自定义样式、功能的需求,例如Toast需要做单例形式、Dialog需要调整样式等。本文中涉及的自定义效果演示如下:思路Toast系统中的Toast在使用时无法做到单例的效果,如果用户连续多次点击某个触发操作,则Toast会做出类似堆栈调用,即使退出应用,也会一次次的相继弹出,直到调用次数响应完为止,在自定义的过程中,除了样式意外,着重将Toast做成单例类。Dialog利用AlertDialog的getWindow().

2021-08-19 10:56:06 7149

原创 Android实现App版本检测、下载与安装新版本apk

背景很多Android应用都内置了新版本检测与在线更新功能,这个简单的功能主要包括检测、下载、安装三个环节,演示效果如下:下载完成以后,自动打开apk,跳到安装界面,交由用户操作:思路想要实现上述功能,主要是分三个步骤来进行:App端向服务端发送网络请求,获取App的最新版本号信息,进行比较,如果服务端返回的版本号大于当前App的版本号,则开启第二步,下载新版本App;有新版本App时,开启下载,并在界面上给出下载进度提示,增加交互性;在下载达到100%的进度时,通过代码打开apk实现安

2021-08-06 16:06:11 6218 1

原创 Android实现自由单选、复选按钮效果+样式美化(二)

背景Android实现自由单选、复选按钮效果+样式美化已经实现了自由单选、复选效果,但是demo中选择按钮控件没有做到自动换行的自适应布局,本次使用FlexboxLayout来支持自适应布局。效果如下:思路想要实现自适应布局,需要让按钮外部的控件支持内部元素动态排版,之前使用的LinearLayout不支持内部自动换行。实现此目标需要涉及到布局计算等知识,有两种方式来做:1、自己写一个支持内部元素自适应布局的组件,元素达到最大宽度时,自动换行到下一行;2、找一个现成的组件包来使用。所幸的是g

2020-07-29 17:45:10 1973

原创 Android实现二维码扫描功能(五)-封装与接入ZXing扫码库

简介《Android实现二维码扫描功能》系列文章陆续收到不少开发者的反馈,看到大家这么关注这个专栏,最近抽空对ZXing扫码和生成二维码又做了优化,封装了一个Android library:zxing-lib,这样在接入应用的过程中会更加方便。预览在zxing-lib库的基础上做了新版的demo,新添加了生成二维码功能,预览效果如下:(由于录像的mp4转换gif过程中存在失真,色彩有点奇怪,...

2019-04-22 10:40:11 12993 37

原创 Android花样loading进度条(四)-渐变色环形进度条

背景Android花样loading进度条系列文章主要讲解如何自定义所需的进度条,包括水平、圆形、环形、圆弧形、不规则形状等。 本篇我们对配文字环形进度条稍加变换,将圆环颜色改为渐变色的形式,使得进度条更具有色彩性,其他内容同上一篇Android花样loading进度条(三)-配文字环形进度条,主要是使用Canvas绘制圆和圆弧、绘制文字。效果先上图看效果,这里有4个进度条,样...

2018-12-16 21:24:38 3901 1

原创 Android网络框架Retrofit2使用封装:Get/Post/文件上传/下载

背景Android开发中的网络框架经过多年的发展,目前比较主流的就是Retrofit了,Retrofit2版本出现也有几年了,为了方便使用,特封装了一些关于Retrofit2的代码,分享给大家。框架主要包括:Get请求Post请求文件上传文件下载使用效果预览:Retrofit对象Retrofit框架内部使用的还是OkHttp框架,在实例化的时候可以自定义OkHttpClie...

2018-10-03 21:27:00 12785 22

原创 Android实现自由单选、复选按钮效果+样式美化

背景Android开发中会遇到将单选按钮排布在多行的情况,一般只能通过自定义控件的形式,绘制单选按钮,网络上也有很多这样的文章,但一般情况下自定义的控件在界面美观性、效果方面稍有欠缺。因此,我们打算用CheckBox+LinearLayout来实现一种多行单选按钮组的效果。效果如下:思路Android中要实现单选按钮要用到RadioGroup+RadioButton的布局结...

2018-09-17 21:45:16 14758 11

原创 Android仿微信底部菜单栏+今日头条顶部导航栏

背景Android应用几乎都会用到底部菜单栏,在Material Design还没有出来之前,TabHost等技术一直占主流,现在Google新sdk中提供了TabLayout类可以便捷的做出底部菜单栏效果。本节我们实现两种主要的Tab效果: 1. 仿微信底部菜单 2. 仿今日头条顶部导航条效果预览: 底部菜单Tab一般与Activity或Fragment配合使用,以达到...

2018-09-12 20:08:27 29645 26

原创 中科大MEM工程管理硕士专业考研初试与复试经验分享

背景2018年中科大(中国科学技术大学)MEM考研已通过复试,因为之前在网上查与科大相关的MEM备考信息特少,备考期间很盲目和焦虑。所以在此特写下经验贴,分享给后续报考科大的同学们。招生情况1、中科大MEM专业开设的时间不长,听老师说好像是16年开始招生的,所以网上的信息比较少。招生单位是中科大研究生院科学岛分院,位置在合肥市董铺水库边上的科学岛,其实就是中科院合肥物质科学研究院,不过...

2018-05-16 22:50:28 18046 33

原创 Android花样loading进度条(三)-配文字环形进度条

背景Android花样loading进度条系列文章主要讲解如何自定义所需的进度条,包括水平、圆形、环形、圆弧形、不规则形状等。 本篇我们继续从圆环形进度条讲起,讲配文字的环形进度条,不仅有进度色彩,还有进度提示和文字说明,主要是使用Canvas绘制圆和圆弧、绘制文字。效果先上图看效果,这里有4个进度条,样式上有微妙区别,基本都属于一个类别的进度条了。 4个进度条基本上分...

2018-04-23 20:07:39 3918 3

原创 Android花样loading进度条(二)-简单环形进度条

背景Android花样loading进度条系列文章主要讲解如何自定义所需的进度条,包括水平、圆形、环形、圆弧形、不规则形状等。 本篇我们从圆形进度条讲起,讲简单形式的环形进度条,只有进度色彩,没有进度文字,主要是使用Canvas绘制圆和圆弧。效果先上图看效果,这里有6个进度条,样式上有微妙区别,基本都属于一个类别的进度条了。 6个进度条基本上分为3类:背景条与进度条...

2018-04-14 18:19:09 9733 2

原创 Android花样loading进度条(一)-水平的网页加载进度条

背景Android花样loading进度条系列文章主要讲解如何自定义所需的进度条,包括水平、圆形、环形、圆弧形、不规则形状等。 本篇我们从水平进度条讲起,主要是ProgressBar的水平样式应用。进度条控件Android提供的ProgressBar控件有水平、圆形两种形态,套用不同的主题可以实现不同的大小,基本上美观一点的设计在实现的时候都需要自定义ProgressBar样式。 ...

2018-04-10 21:16:13 4070

原创 Spring+SpringMVC+Mybatis(SSM)框架搭建教程(六)-总结篇

背景前面5篇文章对《Spring+SpringMVC+Mybatis(SSM)框架搭建》进行了分阶段讲解,从Maven插件配置、项目创建、框架配置、实例开发等阶段系统的分析了SSM框架搭建的方法。项目源码下载地址: http://download.csdn.net/download/ahuyangdong/10262363 本篇对前面内容做个总结,并给出SpringMVC框架应用中的常见问...

2018-03-14 19:44:27 1328

原创 Spring+SpringMVC+Mybatis(SSM)框架搭建教程(五)-扩展:过滤器Filter应用

背景上一篇《Spring+SpringMVC+Mybatis(SSM)框架搭建教程(四)-应用功能开发实例》着重介绍了框架在项目开发过程中的使用方法,以实例的方式讲解了两种请求方式的代码编写形式。本篇着重介绍此框架在应用开发过程中的扩展——过滤器的配置。目标本篇我们要实现两种过滤器:字符编码过滤器参数空格过滤器 字符编码过滤器在中文软件系统中,中文汉字在不同的...

2018-03-06 08:35:02 1587

原创 Spring+SpringMVC+Mybatis(SSM)框架搭建教程(四)-应用功能开发实例

背景上一篇《Spring+SpringMVC+Mybatis(SSM)框架搭建教程(三)-配置文件详解》着重介绍了框架整合过程中的关键配置项目。本篇着重介绍此框架在应用开发过程中的实例与技巧,并给出基本的Controller层封装方法。需求分析假设我们需要利用本框架做一个学生信息呈现系统,主要包括数据库列表信息呈现和数据总量统计,需要用到页面渲染、ajax请求等技术。考虑到实际的信...

2018-02-28 08:31:07 1325 2

原创 Spring+SpringMVC+Mybatis(SSM)框架搭建教程(三)-配置文件详解

背景上一篇《Spring+SpringMVC+Mybatis(SSM)框架搭建教程(二)-创建项目》已将框架依赖包导入、完成基础配置编写,本篇我们详细说明SSM框架关键的配置代码。依赖配置项目依赖配置主要填写框架依赖包,在上一节中已经全部讲述完成,此处略过。web应用配置web应用配置主要是web.xml,在上一节中将MVC控制转发DispatcherServlet配置...

2018-02-25 17:58:21 882 2

原创 Spring+SpringMVC+Mybatis(SSM)框架搭建教程(二)-创建项目

背景上一篇《Spring+SpringMVC+Mybatis(SSM)框架搭建教程(一)-Maven工具配置》已将框架搭建所需的Maven环境配置完成,本篇我们完成MyEclipse创建Maven webapp项目+Spring框架依赖导入。创建项目1、项目使用MyEclipse10.0开发,通过File->New->Project,选择Maven Project,点击...

2018-02-22 12:35:49 970

原创 Spring+SpringMVC+Mybatis(SSM)框架搭建教程(一)-Maven工具配置

背景Spring+SpringMVC+Mybatis(SSM)框架的搭建过程中会用到Spring系列的n多个jar包,按以往依赖jar的笨办法再来添加依赖,会比较麻烦,也不利于管理。所以在这套框架搭建里面我们使用Maven构建工具来管理jar包。Maven简介Maven和Gradle构建工具这几年比较火,到处都能看到。构建工具主要的作用,在我理解,是导入jar、引入关联的依赖(某jar...

2018-02-09 12:39:16 1708

原创 Java Web项目漏洞:检测到目标URL存在http host头攻击漏洞解决办法

背景项目上线之后使用绿盟或Acunetix安全扫描工具扫描后发现了头攻击漏洞。截图如下:漏洞提示检测工具在检测出漏洞后给予的提示为: 大意为不要使用request中的serverName,也就是说host header可能会在攻击时被篡改,依赖request的方法是不可靠的,形如JSP头部中的:String path = request.getContextPath(

2018-01-18 08:47:29 56522 13

原创 Java数据库连接池commons-dbcp升级到commons-dbcp2

背景Spring Web系统数据库连接池使用的还是老版的commons-dbcp,打算由commons-dbcp升级到commons-dbcp2最新版。步骤1、升级maven依赖。commons-dbcp 1.2.2 升级到 commons-dbcp2 2.1.1 maven项目依赖变更,由<dependency> <groupId>commons-dbcp</groupId> <

2017-11-16 18:20:29 8097

原创 MyBatis数据库连接出现Communications link failure现象的解决办法(dbcp2连接池)

背景近期项目生产环境中老是出现”Communications link failure,The last packet successfully received from the server was ** millisecond ago.” 然后系统就无法读取数据库了。解决办法1、排查mysql数据库配置文件my.cnf中有无wait_timeout、interactive_timeout两个

2017-11-16 12:43:35 21364

原创 Android WebView下拉刷新与SwipeRefreshLayout事件冲突解决

简介本篇介绍WebView下拉刷新方法,另外解决SwipeRefreshLayout与WebView嵌套布局时滑动事件冲突的解决办法。效果下拉刷新SwipeRefreshLayout控件可以优雅的完成下拉事件监听。 1、布局文件:<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipe_fresh" a

2017-09-01 19:29:40 10834 16

原创 Android滑动卡TabLayout+ViewPager布局捕获不到返回键Back事件解决办法

简介在APP的主页,我们一般都是用Tab卡+ViewPager的方式来构造。这里要说的情况是ViewPager中嵌套的是Activity。(主页个人喜欢用Activity来做ViewPager的视图)视图布局如下: 目标我们需要在主页上做事件判断,如果用户连续两次按下返回键,就退出APP,按下一次时给出提醒“再按一次确认退出”。初步实现在MainActivity中覆写onKeyDown方法,判断返

2017-08-28 12:41:41 1224

原创 Android实现二维码扫描功能(四)-ZXing识别图片二维码,相册选图

简介上一篇 Android实现二维码扫描功能(三)-闪光灯控制介绍了光线较弱情况下开启闪光灯来辅助二维码识别的方法。本篇我们介绍如何识别相册中的图片(含二维码)效果因为模拟器文件路径有问题(也可能是我没琢磨对),就没有录制gif了,这里放几张过程图。 实现步骤1、com.google.zxing.activity.CaptureActivity中实现点击“相册”功能。private View.On

2017-08-22 20:53:49 34198 37

原创 Android实现二维码扫描功能(三)-闪光灯控制

简介上一篇Android实现二维码扫描功能(二)-ZXing个性化与近距离识别优化介绍了ZXing框架个性化定制和识别优化方法。本篇我们对光线暗淡情况下闪光灯的使用做出介绍。效果晚上测试时:开灯后: 未开灯: 实现步骤1、在activity_scanner.xml界面上加上闪光灯开关按钮。可以是Button、Checkbox等控件。&lt;LinearLayout xmlns:android=&quot;http

2017-08-06 20:17:54 6324

原创 Android实现二维码扫描功能(二)-ZXing个性化与近距离识别优化

简介上一篇Android实现二维码扫描功能(一)-ZXing插件接入介绍了ZXing框架接入方法,已经可以初步集成扫码功能到项目中。本篇我们对扫码界面进行优化,并对ZXing近距离无法识别的问题做出优化。个性化定制每个APP都有自己的表现形式,实现个性化扫码界面定制,主要有两个地方:activity_scanner.xml界面文件com.google.zxing.view.ViewfinderV

2017-07-30 21:41:41 21642 8

原创 Android实现二维码扫描功能(一)-ZXing插件接入

简介关于Android扫描二维码的功能实现,网上有很多相关资料。在对比之后,选用了前辈了修改过的zxing直接接入到项目中,特制作此demo,介绍整个过程。效果预览先上图展示效果(模拟器没有摄像头,录出来效果不好,将就看) 集成步骤1、拷贝本项目demo中的com.google.zxing5个包引入到自己的项目中。 2、拷贝本项目demo中的布局activity_scanner.xml和to

2017-07-30 20:34:08 48185 84

原创 jQuery注册表格(table)行(tr)点击选中checkbox事件

目的实现鼠标点击表格行元素,就可以选中所在行内的复选框,实现数据勾选效果。多用于管理系统中数据列表上。效果录制了一个简单的动画来呈现。 方法这里采用jQuery框架做实现,当然原生的js也可以实现,只是麻烦一些。$(function () { //除了表头(第一行)以外所有的行添加click事件. $("tr").slice(1).click(function () {

2017-07-20 14:46:14 12946 4

原创 Android设置Activity切换动画

目的改变Activity切换默认的动画效果。方法修改Activity的theme属性。步骤1、修改全局theme或自定义一个theme<style name="AppTheme" parent="AppBaseTheme"></style>2、修改theme中的属性,改变动画主题。<style name="AppTheme" parent="AppBaseTheme"> <i

2017-07-08 15:38:49 1635 3

原创 Java集合工具Map、List、Set、Array使用小结

应用过程Java代码编写过程中。目的分析不同场景下不同类、方法的适用性、差异。场景小结需要通过某个id或name取到对应的Object或Entity等,如通过userId取userName。 用Map类,实例化HashMap就可以。需要对键值结构参数进行排序或编码,如对http请求参数进行分析。 用Map类,实例化TreeMap,具有按照字典排序功能;如果排序功能不满足需要,可以自定义排序方

2017-05-17 17:30:45 551

原创 SpringMVC框架中配置多数据源(测试库与正式库分离)

目的为保护正式库数据相对安全,我们将系统中的数据库进行了分离。 开发者在windows环境开发时连接测试库,产品发布到Linux服务器上时连接正式库。策略鉴于开发环境与产品服务器存在系统差别,可以利用系统名称标识 os.name 来区分数据源。步骤1、在jdbc.properties中添加以不同名称标识的路径参数,如:driver=com.mysql.jdbc.Driver#测试库url-d

2017-03-31 15:13:18 1971

原创 Android中org.json.JSONObject按键取值报JSONException解决方法

应用场景在各类接口转换时,使用到JSONObject转换bean或取某个key值时。报异常原因当key在JSONObject中不存在时,无法取到相应的值,此时JSONObject会抛出JSONException。看源码: /** * Returns the value mapped by {@code name}. * * @throws JSONExceptio

2017-01-14 16:16:32 3548

原创 Android中设置APP应用字体不缩放,文字不随系统字体大小变化

应用场景APP在运行时需要保持字体大小(比例)固定,按照编程设定的大小显示。当Android系统字体大小被修改时,不影响APP中文字的大小。为什么要固定字体比例?因为APP界面中文字元素的放大或缩小,会影响APP的呈现效果。有的时候为了界面美观和可用,我们需要做下限制,使用系统默认的字体比例关键方法在应用启动时,在Application的onCreate方法中将APP中的res配置设置为默认。见代码

2017-01-14 15:52:37 14018 1

原创 Android项目中如何清理无用的资源文件或代码

应用场景Android项目已经完成前期开发并逐渐趋于稳定,项目中前期调试和测试使用到的drawable和string等变量将可能再不会使用,为了后期维护方便和代码项目整洁度,考虑清理掉项目用无用的图片、xml、string和color变量定义等。清理方法利用android sdk中的tool中的lint.bat工具查找出没有被关联的资源列表,按照资源列表内容进行逐个删除(手动),目前还没有在意是不是

2017-01-11 15:57:10 4298 4

原创 HttpClient4.5.2由Client客户端上传File文件流至Server服务端

应用场景:java代码部分做文件资源同步。比如:应用系统将上传的文件备份或同步至文件服务器中。代码位置位于java client相关代码部分,将文件流通过httpClient工具发送网络请求到服务器上。关键代码将java.io.File对象添加到HttpEntity(org.apache.http.HttpEntity)对象中:MultipartEntityBuilder mEntityBuilde

2017-01-11 15:03:15 17615 9

原创 HttpClient4.5.2版本中POST提交中文参数时乱码问题解决方法

HttpClient4.5.2版本中POST提交中文参数时乱码问题解决方法。在做接口封装的时候,使用最新的HttpClient工具包来发送网络请求。在提交中文参数内容时,遇到服务端接收数据为”???”等乱码情况,经查证和尝试

2017-01-11 10:43:23 2215 2

原创 Android沉浸式状态栏实现(半透明浮动状态栏)Activity全屏显示

看到好多人对“沉浸式”这个词的释义,学到了点,不过这里我只是关注通知栏是否透明,且不影响我APP UI的布局即可。先来看对比图:默认的造型:沉浸式处理后的造型:实现步骤如下:Step1. 下载SystemBarTint开源库,拷贝或引入其中的SystemBarTintManager.java至本项目中下载地址:https://

2016-06-21 15:24:26 9346 10

原创 Visual SVN导出仓库代码,项目代码备份,批量导出

Visual SVN在Windows平台下的客户端可以实现基本的人员、权限等管理,但是对代码备份(仓库项目的导出)不支持,因为只能通过命令行的方式来执行备份。1、打开系统控制台,进入到Visual SVN所在盘符C:\Users\Administrator>D:2、进入安装目录下的bin目录cd D:\Program Files\VisualSVN Server\bin

2016-03-02 17:42:58 9560

原创 Mysql插入数据报错java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8D\xE8\xBE...'

前几日在项目中遇到数据库插入数据报错java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8D\xE8\xBE...' for column 'title' at row 1一直以为是中文字符编码不对,然后找了各种编码的东西。后来无意中发现了一篇文章:http://blog.csdn.net/fuxuejun/a

2016-02-25 17:56:57 20695 1

原创 Android开发中,使用线程下载apk文件,出现FileNotFound的问题,解决办法

先贴出下载apk的代码

2014-07-30 17:48:14 2425

Android实现二维码扫描功能(四)-ZXing识别图片二维码,相册选图(新版)

Android实现二维码扫描功能(四)-ZXing识别图片二维码,从相册中选择图片并识别图中二维码,详见:http://blog.csdn.net/ahuyangdong/article/details/77487650,持续更新的版本:https://github.com/ahuyangdong/QrCodeDemo4。最新的lib版本:https://github.com/ahuyangdong/QrCodeLib

2018-12-25

Android网络框架Retrofit2使用封装:Get/Post/文件上传/下载

为了方便Android开发,特封装了一些关于Retrofit2的代码,分享给大家。框架主要包括:Get请求、Post请求、文件上传、文件下载。效果图及讲解见:https://blog.csdn.net/ahuyangdong/article/details/82760382。github源码:https://github.com/ahuyangdong/RetrofitFrame

2018-10-16

Android实现自由单选、复选按钮效果+样式美化

在Android中用CheckBox+LinearLayout来实现一种多行单选按钮组的效果。效果图及讲解见:https://blog.csdn.net/ahuyangdong/article/details/82691961。github源码:https://github.com/ahuyangdong/SelectCustom

2018-10-16

Android仿微信底部菜单栏+今日头条顶部导航栏

在Android中实现两种主要的Tab效果: 1. 仿微信底部菜单;2. 仿今日头条顶部导航条。博客讲解见:https://blog.csdn.net/ahuyangdong/article/details/82493158。github源码:https://github.com/ahuyangdong/TabCustom

2018-10-16

Spring+SpringMVC+Mybatis(SSM)框架搭建教程源码

前面6篇文章对《Spring+SpringMVC+Mybatis(SSM)框架搭建》进行了分阶段讲解,从Maven插件配置、项目创建、框架配置、实例开发等阶段系统的分析了SSM框架搭建的方法。项目博客见:http://blog.csdn.net/ahuyangdong/article/details/79376952

2018-02-28

Android实现二维码扫描功能(三)-闪光灯控制

Android实现二维码扫描功能(三)-闪光灯控制文章源码。详见:http://blog.csdn.net/ahuyangdong/article/details/76793151。最新的lib版本:https://github.com/ahuyangdong/QrCodeLib

2017-08-06

Android实现二维码扫描功能(二)-ZXing个性化与扫码效率优化

Android对ZXing扫码工具界面定制和扫码效率优化做了讲解,博客地址http://blog.csdn.net/ahuyangdong/article/details/76407722。最新的lib版本:https://github.com/ahuyangdong/QrCodeLib

2017-07-30

Android实现二维码扫描功能-ZXing插件接入

Android二维码扫描功能开发,采用ZXing插件实现,详见:http://blog.csdn.net/ahuyangdong/article/details/76405557。最新的lib版本:https://github.com/ahuyangdong/QrCodeLib

2017-07-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除