- 博客(46)
- 收藏
- 关注

原创 Android ConstraintLayout布局使用详解
Android ConstraintLayout是谷歌推出替代PrecentLayout的组件。支持相对布局、线性布局、帧布局,笔者看来更像是FrameLayout 、LinearLayout、RelativeLayout三者的结合体,并且比这三者更强大的是实现了百分比布局,大家都知道安卓碎片严重,使用百分比适配,那么将彻底解决适配问题。本文将教会你如何使用此控件。一、当作Relative...
2018-08-21 15:51:46
52454
4
原创 Framework开发内置系统应用
目标将APK内置到系统中流程一、为应用在apps中创建应用目录,并将apk拷贝至目录Example:应用名称:TestApp.apk 应用目录:TestApp 内置路径:packages/apps/TestApp二、为应用创建Android.mk在应用目录下创建Android.mk文件LOCAL_PATH:= $(call my-dir)# Android.mk通常需要定义好LOCAL_PATH,表示当前工作路径,函数my-dir是编译系统提供的,返回当前路径inc
2021-08-06 11:33:48
610
1
原创 Android 获取泛型实际类型
笔者有这么一个需求,根据传入的泛型,将JSON字符串使用GSON解析为指定的泛型。像这样——HttpService.Builder("http://192.168.0.128:9008/external/login.htm") .addParams("file", File(FileUtils.sdCardPath + File.separatorChar + "test...
2018-12-03 15:35:51
3459
原创 QuickBiometric使用详解-快速轻便的使用指纹生物识别
QuickBiometric:快速使用指纹生物识别,已加密解密,避免设备被劫持自带的效果图自定义Dialog返回的type类型源码地址QuickAndroid全家桶自带的效果图这是组件自带的弹框 QuickBiometric.showFingerprintDialog(activity!!) { type, resultMsg -> ...
2018-10-18 11:12:39
482
原创 Android 自定义View,虚线纵向、横向
虚线在shape中配置还是比较麻烦的,所以自定义一个,使用起来会方便很多。 虚线支持横向、纵向两种方式。并且高宽间隔都可以自定义,使用很灵活。使用说明:默认方向:横向。横向时:默认宽度为40,默认高度为View高度纵向时:默认宽度为View的宽度,默认高度为40直接在xml中配置: <org.quick.component.widget.DashedL...
2018-10-15 10:23:11
1583
原创 Android 自定义CheckAnimView,支付宝支付成功打勾对号动画,kotlin编写
CheckAnimView是什么东西呢,顾名思义就是选择器,带动画效果的View,此View全由代码生成图形。使用场景:1、可以当作酷炫的选择器。2、也可以用于展示结果,比如:支付结果,操作成功等接下来看一下效果: 控件由四种图形组合成动画:边框(空心圆),背景(实心圆),打勾的线条,星星的线条。并且四种图形可以独立存在,根据需求添加,只需要在xml或者代码中设置即可,非常方便。...
2018-09-18 16:52:40
2346
原创 Android ConstraintLayout百分比布局-适配终结者(基本适配所有机型)
对于Android开发者来讲,适配始终是个大问题,在小米手机上面是一个样,在oppo上面是一个样,真是让人恼火。现在讲一下笔者最近遇到的问题,公司项目需求,一颗树,树有很有枝桠,枝桠上面要挂红包,这需求是真坑爹,精度要求特别高,这肯定不能使用DP适配了,最开始想自己根据屏幕分辨率来做适配,设计图是750*1334的,我自己等比缩放在1080上面和720上面,这工作量有点大啊,一个人无法完成的赶...
2018-08-21 15:54:09
17801
8
原创 QuickAdapter使用详解-快速构建RecyclerViewAdapter
QuickAdapter是什么东西呢,顾名思义就是快速构建RecyclerViewAdapter。 那此组件有什么特点:快速构建Adapter,集成QuickViewHolder,快速绑定数据,配置itemView,margin,padding灵活,设置OnItemClickListener、OnItemLongLister,并且可单独设置ItemView内的View点击事件OnCli...
2018-08-15 11:54:59
2116
原创 QuickViewHolder使用详解-快速轻便的ViewHolder,视图持有器
QuickViewHolder是什么东西呢,顾名思义就是快速轻便的ViewHolder,视图持有器。 那此组件有什么特点:不需要根据Layout定义一大堆View,再一个一个findViewById,集成了常用绑定数据的方法,适配于所有Widget持有对象,例如RecyclerView,ListView,GroupListView等甚至连Activity与Fragment都可以。扩...
2018-08-15 10:47:42
799
原创 QuickSPHelper使用详解-快速使用SharedPreferences
QuickSPHelper是什么东西呢,顾名思义就是快速使用SharedPreferences。那此组件有什么特点:无需配置,直接可使用,组件轻便接下来我们看一下正常写法:val sharedPreferences=getSharedPreferences("this is a name", Context.MODE_PRIVATE)//存值sharedPreferenc...
2018-08-15 10:11:17
353
原创 QuickNotify使用详解-快速发送通知、桌面快捷方式(兼容Android 8.0)
QuickNotify是什么东西呢,顾名思义就是快速发送通知、桌面快捷方式。那此组件有什么特点:不需要传入Context,配置灵活,兼容安卓8.0,并且以回调的方式接收返回消息,无需自己定义广播接收接下来我们看一下正常写法:。。。发现正常写法太长了,兼容难做,如果把代码贴出来估计得快2屏了,这里就不贴了。所以直接看下QuickNotify的写法1、发送普通通知Qu...
2018-08-14 15:37:50
660
原创 QuickToast使用详解-快速Toast,子线程也可使用
QuickToast是什么东西呢,顾名思义就是快速Toast,并且非主线程也可弹出,无需绑定Context那此组件有什么特点:可在任意子线程弹出,无需绑定context,自动缓存上一个Toast,快速配置且支持自定义,实时弹出Toast,不会像原生那样跳动,等待上一个Toast结束再弹出下一个,此组件也绑定了QuickViewHolder,方便设置数据。接下来我们看一下正常写法:...
2018-08-14 14:47:52
381
原创 QuickDialog使用详解-快速创建配置Diaog
QuickDialog是什么东西呢,顾名思义快速创建配置Diaog,方便使用Dialog。那此组件有什么特点: 创建Dialog使用链式配置方式,使用方便,代码简洁,集成QuickViewHolder,可快速对dialog数据进行设置,无需再findviewById对View进行单个设置接下来我们看一下正常写法:1、先定义Dialog与Layout中的View va...
2018-08-14 11:26:03
776
原创 QuickASync使用详解-快速切换子线程处理耗时操作,执行完成后回归主线程
QuickASync是什么东西呢,顾名思义快速切换子线程处理耗时操作,执行完成后回归主线程,听起来挺洋气的。 那此组件有什么特点:做异步操作时,只需要调用一个方法即可,简单快速做异步操作,并且组件轻巧,几百行代码,不用担心apk体积增加太大,不与现有代码冲突。接下来我们看一下正常写法:1、定义一个handler-并处理业务逻辑val handler = @Suppress...
2018-08-14 10:31:16
565
原创 QuickBroadcast使用详解-快速注册、发送动态广播
QuickBroadcast是什么东西呢,顾名思义就是快速注册、发送动态广播。 那此组件有什么特点: 快速注册广播与方便的发送广播,方便的多端注册接收,全局使用一个广播,性能良好,组件源码仅仅只有几百行,代码兼容,与现有广播不冲突。接下来我们看一下正常写法:1、实例一个广播val broadcastRecevier=object :BroadcastReceiver(){...
2018-08-13 16:31:24
396
原创 QuickActivity使用详解-快速启动Activity
QuickStartActivity是什么东西呢,顾名思义就是快速启动Activity。那此组件有什么特点:接管onActivityResult,根据目标Activity自动生成requestCode,并且以回调的方式从上一个页面返回数据,从而无需自己重写onActivityResult,节省了些体力,代码量也变少了。接下来我们看一下正常写法:1、启动Activityva...
2018-08-13 14:57:34
1232
原创 Android studio 上传maven以及使用详解
Android studio 上传包到jcenter maven仓库。在网上找到许多教程,可以说是五花八门,八仙过海,许多已经过时了,一直搞不定配置,蓝瘦香菇,空有凌云志,却无渡世君!经过不停的爬坑,最后终于解决。在这里从头到尾写出来,分享给大家。实际上非常简单,一共就只有几步就搞定了。一、注册bintray账号自行注册即可https://bintray.com/二、创建组织(...
2018-07-27 17:31:25
2729
原创 打印机无法打印-常见故障总结
打印机无法打印原因有许多,可能是服务异常关闭了,可能是驱动过时了,本文将总结作者在生活中所遇见的问题,希望能帮助到读者。可能不太全面,但是会不断更新。1、USB打印支持是较旧的USB设备,可能不兼容USB3.0按现在时间来看,遇到这个问题机率不大。原因:系统与打印机不兼容办法:只需要更新系统即可解决(别问我如何更新系统,一般没有关闭更新服务,开机都会自动更新)。2、打印机队列状态-打印错误打印机连...
2018-07-16 14:23:33
9281
1
原创 Android 蓝牙终端交互管理
温馨提示:本文主要针对蓝牙终端操作,其他设备暂未测试过。封装了一系列的蓝牙操作:1、搜索蓝牙2、配对蓝牙3、发送消息4、接收消息现已将操作封闭为类BluetoothChatService.java,由于代码太多就不贴出来了,请移到Github上查看Demo链接:https://github.com/SpringSmell/quick.library/blob/master/app/src/main...
2018-06-01 17:25:38
1102
2
原创 Android Studio kotlin生成编辑类注释
更新了AS 3.1.2之后,发现新建Kotlin类,类注释依然木有,没办法只有自己动手了。方法很简单,编辑File Header就可以啦。只需要编辑自己想要的模板就可以啦。/*** @Author ${USER}* @Date ${DATE}-${TIME}* @Email chrisSpringSmell@gmail.com*/支持的动态命令不多,只有一些简单的命令。新建类效果:...
2018-05-23 11:14:51
5990
原创 Android Zxing3.3.2扫描、生成、解析二维码,以及近距离无法识别的问题
Zxing目前最新版本3.3.2,打开摄像头就成功了,真正的极速扫描,效果喜人。一、集成流程1、克隆代码就不说了。2、zxing项目巨大,我们只需要扫描部分的代码。将android、android-core、core目录代码以及资源拷贝到项目目录下。所有类都需要修改引用类路径,全局更新so easy!这是我拷贝过后,未简洁过后的目录:使用方式:调用Ca...
2018-05-22 11:50:58
9805
4
原创 Android 打开关闭闪光灯(手电筒)
/** * 打开闪光灯 */public void openFlashLight() { if (camera.getCamera() == null) { return; } Camera.Parameters parameter = camera.getCamera().getParameters(); parameter.setFlashMode(Camera....
2018-05-21 15:36:33
6185
1
原创 git 基本使用
git基本命令初始化本地仓库$ git init添加远程仓库$ git remote add https://github.com/SpringSmell/quick.library.git添加远程仓库2$ git remote add origin git@github.com:SpringSmell/quick-component.git查看远程仓库$ git ...
2018-05-08 17:24:53
316
原创 Android 7.0,8.0上安装Apk
在网上查找到资料,这里做个总结。原因:日愈严重的病毒,7.0对安全做了优化。具体原因网上有很多资料,就不说了。正题:class方法:public static boolean installAPK(Context context, File apkFile) { if (apkFile.exists()) { Intent intent = new Intent(Inten...
2018-05-08 10:20:43
1089
原创 热更新-Bugly-Tinker使用详解
Bugly热更新是基于Tinker使用的。为什么使用Bugly呢,因为他目前还没有收费。费话不多说了,言归正传使用教程,跟着步骤一步一步教你集成gradle集成方式1、添加依赖compile 'com.tencent.bugly:crashreport_upgrade:1.3.3'//版本号可替换为latest.release表示最新版本compile 'com.a
2018-01-08 11:06:27
2128
原创 Kotlin 无法直接使用xml中的ID
背景:AS升级为3.0,而无法使用Kotlin新特性,不需要findViewbyId,而直接使用xml中定义的ID,像这样的:testTv是我在xml中定义的ID,而此处并没有findViewById,是不是很方便。这里新建的项目是可以使用的,而老项目不行,肯定是老项目没配置好。只需要在module中加入Kotlin插件就可以了apply p...
2017-11-08 09:30:03
8050
2
原创 Kotlin 跳转Activity以及无法获取::class.java
背景:AS升级到3.0,.java与.kt并存,新页面使用的Kotlin开发,才刚开始就遇到问题了,无法获取::class.java实现代码片段companion object { /** * @param type */ fun startAction(context: Activity, title: String, type: I
2017-11-08 09:05:34
5333
原创 Android Kotlin TextView跑马灯效果
有时候我们在xml中配置跑马灯属性,最后却发现有时有效果,而有时却没有效果,这是为什么呢。我们大概是如此配置的android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"android:singleLine="true"这样配置是没有问题的,问题出在TextView上面,因为TextView焦
2017-08-30 10:10:21
1620
原创 Gradle's dependency cache may be corrupt(this sometimes occurs after a network connection timeout.)
使用Android studio 3.0 Beta2 创建Kotlin项目时发生Gradle错误一起提示连接超时,无法下载该Gradle版本,换成3.3版本也不行。最后将Gradle版本改为了就正确了:https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip剩下就是无尽等待了
2017-08-24 15:22:50
3464
原创 Android SharedPreferencesHelper简单封装
先赌为快:public class SharedPreferencesHelper { private static SharedPreferencesHelper helper; private SharedPreferences mSharedPreferences; private static SharedPreferences.Editor mE
2017-08-18 15:17:00
927
原创 Android 自定义View ProgressBarCircle,圆形进度条,仿微博图片加载
仿微博进度条,感觉那样加载比较优雅,就抄了一个。class类源码:/** * Created by work on 2017/8/8. * 图形进度条不带百分比 * * @author chris zou * @mail chrisSpringSmell@gmail.com */public class ProgressBarCircle extends
2017-08-18 15:10:22
736
原创 Android 自定义View ProgressBarHorizontal:横向进度条、支持圆角、渐变、图片
背景:因系统的ProgressBar设置图片时,如果图片不够大,而在大分辨率的手机上时会出现无法填充满,所以自己写一个,既修复该问题,又可方便拓展,所以抛砖引玉功能介绍:横向进度条,分为背景与封面两层,封面与背景均支持圆角矩形、渐变、图片。
2017-08-18 14:37:23
2876
原创 Android 十六进制字符串转换为字节与反转
蓝牙与硬件之间通信一般采用十六进制,所以需要将进制进入转换一下。现提供几个我使用的转换方法:1、十六进制转换为字节/** * 将十六进制的字符串转换成字节 * * @param commandStr 7E 18 00 07 00 04 01 02 03 04 00 05 00 1A 7E * @return * @throws NumberFormat
2017-08-07 15:02:52
2386
原创 Android 自定义ViewPager嵌套滚动兼容
/** * 1、嵌套滚动兼容 * 2、单击事件 * 3、子View缩放兼容 * * @author chrisZou * @blog http://blog.youkuaiyun.com/mcy478643968/article/details/19609407 * @blog http://blog.youkuaiyun.com/leewenjin/article/details/21011841 *
2017-07-12 10:17:39
341
原创 Android 通过反射获取系统组件的私有变量,并做更改
使用场景:因为系统控件已经封装好了,而我们又需要自定义一些内容。例如:1、toolbar左边的setNavigationIcon我们需要自定义,做一动画效果,2、recyclerView的滑动监听OnItemTouchListeners。等一些需要更改私有变量的控件 实现代码片段Class<?> class1 = Class.forName("android...
2017-07-06 17:48:20
5518
原创 android Could not download manifest-merger.jar
如果你的Android studio为 2.3.2,而你的classpath为:classpath 'com.android.tools.build:gradle:2.3.3'将会发生此错误:Could not download manifest-merger.jar解决方法:修改为正确的版本,如:1、将2.3.3,修改为2.3.2,或者是2、更新Android s
2017-06-21 00:06:15
4111
原创 Android 比较时间的大小,时间差,格式化时间,以及格式化两个时间大小差值、格式化秒表
一、比较时间的大小-三种方式:1、获取时间戳比较timestamp1 > timestamp22、转换为Date比较val date=Date()val date2=时间2date.after(date2)3、使用工具类(推荐)val date = Date()val date2 = Date()/*date>date2*/DateUtils.a...
2017-06-12 14:06:45
6991
3
原创 android android Error:java.lang.OutOfMemoryError: GC overhead limit exceeded
原因:主要是JDK预测将OOM,所以提前抛出。解决方法android{dexOptions { incremental true javaMaxHeapSize "6g"}
2017-06-04 10:14:39
446
原创 Android 自定义ScrollView嵌套滚动兼容,监听滑动状态:顶部、底部、停止、滑动中
public class CustomScrollView extends ScrollView { private ScrollListener scrollListener; private boolean isScrolling = false; public CustomScrollView(Context context) { super(co
2017-05-26 11:56:41
956
1
原创 Android 自定义SwipeRefreshLayout与ListView、ScrollView滑动兼容冲突
解决ListView与ScrollView上下滑动与SwipeRefreshLayout的事件冲突。
2017-05-26 11:52:56
718
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人