4 Yuhoon

尚未进行身份认证

暂无相关简介

等级
TA的排名 25w+

自适应空间的PopupWindow,动态修改显示位置(支持上下)

昨天新界面UI出稿,看到了一个新需求:一个列表的item支持点击,点击Item在下方弹出弹窗显示详情。很好实现,用popupWindow即可,但同时也发现了一个问题,当点击下方item时,由于布局太靠底,导致悬浮框无法完全显示。想完全显示实现思路很多,比如可以使布局向下滚动,暴露出全体布局。楼主这里用到了另一种方案,如果当前布局没有充足空间显示悬浮框时,就在上方显示,具体实现也是比较简单的,封装了

2017-06-13 16:16:41

Android调用相机拍照并添加水印

最近项目提出新需求,要求在拍照后在图片上添加用户信息的水印,so,楼主重新整理封装了一个简单的拍照+水印的工具类,需求不同,仅供参考。文件操作及权限做了适配,支持androidN及以上版本,放心使用。效果演示:如何调用相机这里就不介绍了,因为小伙伴们基本都使用过,主要介绍下实现水印的方式,实现水印效果也很简单,利用paint及canvas操作bitmap在对应位置进行绘制文

2017-04-27 11:19:51

Android表单校验器,让你的文本校验清晰化

对于一般项目的业务层,注册页的输入框都密密麻麻,对输入文本的检验也千奇百怪,在应对多个文本框文本进行判断时,总是if、else不仅让我们的代码写的过长,而且有时又会造成逻辑混乱,这时我们移动端可以采用表单的模式把当前模块中的所有文本框放入一个表单校验器中,统一进行验证处理。LZ封装了一个表单验证器,支持Textview及其子类。LZ定义了一个规则接口,所有子规则都实现了这个Rule,定

2017-03-10 14:58:24

利用JitPack,简单几步创建远程库

jCenter是很常用的远程库,但是需要添加的配置太多,而且审核速度慢,步骤太过繁琐。本文介绍JitPack,简单几步,轻松创建远程库。JitPack与Github项目相关联,不需要像jCenter添加那么多参数,也不需要审核,提交加编译,分分钟搞定。创建项目:在android studio中创建个module,在project的build.gradle中添加插件:dependen

2017-03-09 16:56:17

Android建立远程动态库,提交到Jcenter

用Android Studio的人都知道build中默认远程库地址就是JCenter,所以我们有时开发的开源项目也可提交至JCenter然后直接compile即可。Jcenter是Bintray旗下的库之一,所以先要提交到bintray,然后同步到jcenter。一、注册bintray帐号,获取userName、ApiKey:注册地址:https://bintray.com,已有帐号可忽略

2017-03-09 10:58:00

Androoid 验证码输入框控件

项目中用到6位验证码布局,看了网上的开源组件,很简单,只是自己单纯自己想去写一个,所以提供给大家,效果如下:实现方式很多,笔者重写了GridLayout,动态添加Edittext,话不多说先看下源码:public class EdtSmsCodeLayout extends GridLayout implements TextWatcher, View.OnKeyListene

2017-03-07 15:29:04

Databinding之RecyclerViewAdapter

近期本人一直在用Databinding,属实好用,最近又发现有小伙伴封装了recyclerView的Adapter,真是太给力了!拿过来与大家分享下。框架中提供了两种适配器类型,single单一数据源和multi混合型数据源,针对不同的需求。一般情况下,我们常用的是single类型,因为列表只定义一种类型数据源,但也不排除列表复杂,引入多种布局,这时候我们可以用MultiTypeAdapter,具

2017-03-03 14:46:13

Databinding框架简介

以前项目一直用MVC(Model View Controller)架构,最近又改为(Model View View Model),引用了Google力推的Databinding框架,可以堪称黑科技。减少了findViewId麻烦的实例化,优化了臃肿的controller层。XML布局与数据互绑,减少了很多逻辑与代码量,大大节约了开发周期。本文主要介绍一些Databinding的常用方法,g

2017-02-13 18:42:26

Activity已销毁,创建的线程未回收问题

今天在做新模块测试时发现了一个严重的问题,当一个activity开启一个线程时,如果当前activity调用finish()函数不会关闭当前创建的线程。对于每个新建activity,如果activity中的线程发生内存泄漏。在Java中线程时垃圾回收机制的根源,也就是说,在运行系统中DVM虚拟机总会使硬件持有运行状态的进程的引用,结果导致处于运行状态的线程将永远不会回收。因此你必须为你的后台线程实

2017-02-10 13:40:28

android插件化 动态加载apk

随着android技术不断更新,app插件化也逐渐成为焦点。本人在上海某公司做物流产品,用到很多扫描驱动。近期应老大需求,要求我们把扫描做成插件化,让用户下载并动态加载。上网上看了一番,发现都是通过classloader通过反射机制去加载jar/dex/apk中类的方法。类加载器(class loader)把类的字节代码加载到Java虚拟机中。虽然这种方法可以很轻松的加载任意代码,但是我们发现如果

2016-11-17 16:34:59
勋章 我的勋章
    暂无奖章