
Android
KosmoSakura
这个作者很懒,什么都没留下…
展开
-
贝塞尔波纹+蒙版和螺旋线进度条控件
源码见GayHub:XfermodeBar最近有小伙伴在问我画笔Paint蒙版的叠加模式。刚好之前搞过,所以就整理了下代码,把控件提取了出来。晚些时候提交上来。1.效果预览2.使用WaveShapeBar 浪 wpv.setText(Color.parseColor("#FFFFFF"), 120) .setWaveColor(Color.parseCol...原创 2019-10-24 01:13:37 · 3248 阅读 · 0 评论 -
Android基于闪光灯的手电筒工具
目前操控闪光灯主要有2种方式1.aidl+反射hardware方法需要:闪光灯和硬件权限<uses-permission Android:name="android.permission.FLASHLIGHT" /> <uses-permission Android:name="android.permission.HARDWARE_TEST" />...原创 2018-11-30 16:09:01 · 317 阅读 · 0 评论 -
Android 8.0 打开wifi热点
在 android8.0之前,Android热点方面的开发基本上都是依靠java的反射机制来完成的。但是8.0之后,谷狗对反射系统api作了限制,之前的方法也就失效了。下面是我在8.0或者更高的系统的踩坑记录源码见我的工具包:KosmosUtils,欢迎issues0.事前准备系统的定位服务一定要保证是开启状态/** * @return GPS是否打开 */public...原创 2018-11-27 21:35:28 · 3438 阅读 · 5 评论 -
Android 应用锁开发 的 获取栈顶包名、系统桌面包名等一系列骚操作
最近我在折腾一个应用锁的应用,里面有不少平时用很少接触的东西,整理记录下。源码GayHub1.权限生擒因为涉及到一下系统权限,所以常规的权限申请没用先在manifest里登记下<uses-permission android:name="android.permission.GET_TASKS"/><uses-permission and...原创 2018-12-11 17:28:40 · 804 阅读 · 0 评论 -
指纹适配记录Android9.0
注意:系统默认的每段时间验证指纹次数为5次 次数用完之后自动关闭验证,并且30秒之内不允行在使用验证指纹验证根据Api分两个阶段第一阶段:api小于Build.VERSION_CODES.M(Android 6.0=23),系统不支持指纹系统。(部分定制(红米)手机暂不考虑)第二阶段:api小于Build.VERSION_CODES.P(Android 9.0=28),谷狗封装了sup...原创 2018-12-18 17:01:21 · 4327 阅读 · 0 评论 -
Android摇一摇、屏幕方向的监听
踩坑记录这个工具类里有两个独立的监听1.先贴代码1.使用示例1.实例化UGravity gravity = new UGravity(this);//监听手机方向gravity.setOrientationListener(orientation -> { //do sth});//监听手机摇晃gravity.setOnShakeListener(() -&...原创 2019-01-28 16:02:10 · 479 阅读 · 0 评论 -
ConstraintLayout 约束布局的几个新特性笔记整理
1.约束比(偏移比率)使用前提:控件的四个方向都被约束属性/栗子参数说明app:layout_constraintHorizontal_bias="0.3"float水平约束比app:layout_constraintVertical_bias="0.3"float竖直约束比2.宽高比使用前提:控件宽高指定其一0dp表示待约束(比原创 2019-02-15 12:13:03 · 2356 阅读 · 0 评论 -
Android facebook KeyHash生成(生成发布密钥散列)
用于facebook的SDK集成需要签名文件的Hash密钥散列1.工具下载OpenSSL工具,这个需要科学上网。如果不怎么科学,可以来这里2.安装直接解压丢在某个文件夹内即可,这里需要注意的是,如果你的安装目录在C:\Program Files或者C:\Program Files (x86)那你运行CMD的时候需要以管理员模式启动,否则就会出现下面的情况然后把安装目录下的...原创 2019-03-22 17:33:40 · 3470 阅读 · 0 评论 -
Android 颜色渐变 属性动画
最近用到的一个效果,见下图文字颜色渐变(周围的晃来晃去的框框是轨迹动画,下篇博客说)1.原理计算机颜色由红、绿、蓝三色混合组成(值为0-255)红、绿、蓝之间色值,按照不同大小比例 组成不同颜色 和深浅的视觉颜色这里的颜色渐变动画就是利用属性动画ValueAnimator来平滑的改变色值的大小,达到颜色的渐变效果2.上代码TextView text = findView...原创 2019-04-02 16:31:15 · 3976 阅读 · 3 评论 -
Android原生注解整理
1.空检查@Nullable、@NonNull变量、参数或者返回值的空值检测@Nullness表示可以为null;@NonNull表示不可以为null@Nullable标记的方法,如果返回值不进行null的检查,会出现警告2.资源注解@StringRes:包含 R.string 引用@IntegerRes:R.integer 类型资源。@AnimatorRes:R.ani...原创 2019-04-12 17:37:23 · 623 阅读 · 0 评论 -
Android Dialog组件工具封装
KDialogGithub封装了一个日常用的对话框组合控件,免得每次都重复造一遍轮子。这个轮子中规中矩,没什么新意,但本人平时开发使用频率却比那些花里胡哨的的对话框用的多。为了方便使用,便在JitPack 上做了个依赖1.依赖在根 build.gradle添加JitPack 依赖allprojects { repositories { ... maven { url 'ht...原创 2019-04-13 11:11:38 · 1664 阅读 · 0 评论 -
丢掉龟速的java媒体库,通过Lame实现Android录音同时转换为mp3格式保存
0.Read MeAndroid的媒体处理一直是件让人头疼的事情。Java倒是也有不少媒体第三方的处理库(mp3agic,musicg等)。但是Java那一波三折的运行方式,导致在它在处理大量运算(图像,音频计算等)的时候力不从心。为此,Java提供了native关键字,通过jni调用C/C++的函数库来充分使用CPU资源。比如这里有一个需求:Android录音机录音,然后实时的转换成mp...原创 2019-05-25 19:37:10 · 1029 阅读 · 0 评论 -
Android基于方向传感器实现指南针功能
这里做了一个指南针,主要用到了Android里的加速度传感器和地磁传感器Github源码1.数据初始化private USensor(Context context) { if (sorMgr == null) { //传感器管理 sorMgr = (SensorManager) context.getSystemService(Context.SE...原创 2018-11-30 15:43:54 · 3673 阅读 · 0 评论 -
Android Studio 调试release包
debug的时候一切完美运行,打release包老崩。但是release默认情况下是不会打印日志的。关于AS在release状态调试方法记录下:1.build.gradle文件配置signingConfigs { release { keyAlias 'keyAlias ' keyPassword 'keyPassword ' sto...原创 2018-11-23 14:27:48 · 3841 阅读 · 2 评论 -
CallBack 回调函数的基本写法
比如说这是一个用于监听Duang的监听器, 当Duang时,会回调Duang的duang方法1:先写一个接口里面包含duang改变的抽象方法 public interface OnDuangDuangListener{ void duang(int duang); }2. 创建一个该接口的成员对象(因为该...原创 2015-12-03 14:40:56 · 1273 阅读 · 0 评论 -
一个开发工具(“当前Activity”)的二次开发项目
大家还记得GooglePlay上面的那个开发者小工具“当前Activity”吗? 当一个项目比较庞大的时候,想必都有想去某个页面,但忘记类名,只能在代码里顺着逻辑找类名的情况吧( ̄▽ ̄)/,苦逼不说,还非常耗时间。 GitHub的109021017写了个小工具,直接将每个页面显示当前Activity的类名和包名(`・ω・´)显示在平面左上角,可以说是灰常的方便。原创 2018-01-13 00:34:43 · 1283 阅读 · 3 评论 -
关于MVP设计模式举个栗子
MVP 全称:Model-View-Presenter ;MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。1.Model(数据层):1.Base:定义一些基础的公用的函数public interface IModel { void setID(in...原创 2017-06-20 16:40:00 · 413 阅读 · 0 评论 -
Android运行时异常“Binary XML file line # : Error inflating class”
在原生Android下编译APK,编译没有问题,但是在运行的时候经常出现如标题所描述的异常,然后整个程序Crash掉...... 我遇到该问题常常都是因为修改了资源文件所引起,大致有以下几种方式来解决: 1. 引用类名问题:自定义了一个View,将他用于布局文件中,假设他的包名叫MyPackage,类名叫MyTestView,这个时候你在XML作为布局元素来布局的话,必须使原创 2018-06-24 03:51:50 · 4033 阅读 · 0 评论 -
自定义SeekBar,实现带刻度的进度条实现颜色渐变效果
自定义SeekBar,进度变化由可视化气泡样式呈现,定制化程度较高实现带刻度的进度条实现颜色渐变效果源码下载:Github ,码云Github太慢,所以只在码云上持续更新整体效果如下:基于woxingxiao的BubbleSeekBar修改主要代码1.attr中新增属性:<!--渐变色号,用_分割--><attr name="bsb_colors" f...原创 2018-10-03 18:49:35 · 8605 阅读 · 2 评论 -
Android利用 canvas和Shader阴影绘制
自定义SeekBarAndroid利用 canvas和Shader阴影绘制源码下载:Github ,码云Github太慢,所以只在码云上持续更新效果图:1.关于Thumb的阴影效果的关键的代码mPaint.setColor(mThumbColor);if (isThumbOnDragging) { //绘制拖动中的Thumb //绘制拖动中的阴影:阴影半径,阴...原创 2018-10-14 23:40:52 · 2846 阅读 · 1 评论 -
OOM-关于Android内存溢出的一些解决思路的整理
原因:系统为每一个应用程序分配了不同的内存上限,如果超过这个上限被视为内存泄露,从而被kill掉。比如:1.加载对象过大2.相应资源过多,来不及加载。解决办法们oom这个真的不好权衡,下面这些注意事项好多是相互矛盾的,根据业务,各取所需吧。而且一味的追求小内存开销,也不好。毕竟,硬件本身的性能越来越强大,你不用,它也会老化。一、图片1.内存中加载图片直接在内存中做处...原创 2018-10-23 20:39:17 · 2528 阅读 · 0 评论 -
自定义RatingBar评分动画控件
KRatingBar先说说,这个控件存在的意义(和原生RatingBar相比):1.自动排列:指定星星数量后,星星自动均等排列2.星星点击动画:算是满足一丢丢少女心吧3.星星数量脱离了RatingBar宽度的控制4.避免星星出现拖影和“流泪”现象5.星星的样式直接调用res的drawable,不用再单独去定义个layer-list总之就是使用更方便一点吧。请看效果:为啥要...原创 2018-11-03 02:10:19 · 628 阅读 · 0 评论 -
在Retrofit2网络请求时打印参数的踩坑记录
常规做法是构造一个拦截器继承自Interceptor1.先贴代码先复制一份@Overridepublic Response intercept(Chain chain) throws IOException { ... Request build = builder.build(); Response response = chain.proceed(bui...原创 2018-11-11 00:22:15 · 1791 阅读 · 0 评论 -
RSA AES-对称加密和非对称加密
客户端加密过程主要分为以下三个步骤:1.客户端:随机产生AES的密钥2.客户端:对身份证信息(重要信息)进行AES加密3.客户端:通过使用RSA对AES密钥进行公钥加密4.服务端:对加密后的AES密钥进行RSA私钥解密,拿到密钥原文;5.服务端:对加密后的重要信息进行AES解密,拿到原始内容。之所以这么麻烦,因为:AES对称加密、解密的速度要比RSA快很多,但是,安全性却不...原创 2018-11-11 02:50:35 · 11270 阅读 · 2 评论 -
Android 下载到SD卡 踩坑(Retrofit2)
1.权限&lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&gt;2.动态申请RxPermissions permissions = new RxPermissions(this)if (permissions.isGranted(Manifest.permission.WRITE_EX...原创 2018-11-15 10:25:23 · 323 阅读 · 0 评论 -
Android自定View:可以设置宽高比例和圆角图片的ImageView
昨天有个朋友让我折腾一个这样的ImageView, 他说“我想要一个既可以圆角又可以设置宽高比的imageview” 所以我就折腾了下。大概是这样的 1.attributes 这里说一下:如果参考边是:宽,那么你高度的设置其实是没有效果的 因为,代码里面 我直接把高度重新计算了&amp;amp;amp;amp;lt;declare-styleable name=&amp;amp;amp;quot原创 2018-06-24 03:41:46 · 1366 阅读 · 0 评论