
Android路漫漫
文章平均质量分 71
记录在安卓路上的点点滴滴,总结技术性知识,分享经验。
hello world smile
android、flutter都在做的开发,天马行空,爱幻想
展开
-
Android 实现一个系统级的悬浮秒表
由于项目需要将手机录屏和时间日志对应起来,一般的手机录屏只能看到分钟,但是APP的日志输出通常都是秒级别的,于是决定自己手撸一个悬浮秒表(有拖拽效果)。效果如下。原创 2024-11-08 09:53:25 · 715 阅读 · 0 评论 -
Flutter我来啦
结缘Flutter都知道Flutter是Google推出的,做为一名安卓开发者也不列外,从Java到Kotlin、从MVC到MVP再到MVVM,以及让人头疼的RX系列、还有kotlin协程,自己虽不是样样都用的娴熟,但是都了解一点,以至于去处面试的时候不至于被问到都不知道是啥,但是Flutter就不一样了,这个从来没出现在自己的简历上,自己也自学过一段时间,但是从来都get不到 Flutter的点,APP体验差,Dart语法还好,和Kotlin有几分相似,但是写法对于初接触者应该算是一言难尽:万物皆控件,原创 2021-02-17 15:14:11 · 250 阅读 · 0 评论 -
常用的一些小排序算法之冒泡排序,直接选择排序,反转排序
前言常常会被问一些排序算法,可能对于客户端开发来说,直接用到的地方不多,即便是用到了也可以直接调用sort()方法,如下://通过数组帮助类Arrays来实现 System.out.print("排序后数字:"); //创建乱序数组 int[] array ={1,3,9,4,3,6,7,5}; //调用系统自带排序 Arrays.sort(array); System.out.print("排序后数字:");原创 2021-01-14 13:37:49 · 272 阅读 · 0 评论 -
Kotlin空安全原理
前沿可能又要闲置一段时间了,闲置的原因长的不知道从何说起,收拾收拾心情,整理下博客,不卑不亢,静下心来,梳理下知识点,写写博客记录下,就当是给自己放假啦,浮躁的人得静下心来,能力不够学习来凑!kotlin空安全被面试官问到kotlin空安全的原理,瞬间触碰到盲区了,自己用过kotlin也知道kotlin空安全的用法以及优点,就是没有想过它的原理是什么,然后卒。回去特意查了下,kotlin对空字符串以及null的判断要比Java友好的多,相比较Java的TextUtils.isEmpty()方法,我们原创 2021-01-12 17:01:48 · 1829 阅读 · 7 评论 -
Android集成支付宝支付(Kotlin)
前言之前从头到尾独立开发一个小项目,于是尝试用Kotlin来完成,基本写完就爱上了kotlin了。可以说相比较Java是相当的舒服,项目中涉及到支付,于是自己负责支付宝支付的整个流程包括申请账号,材料准备等,下面记录下整个流程账号申请账号一般都是公司提供的,登陆后需要签约支付,蚂蚁金服官网里面会有APP支付客户端Dome具体使用场景如下支付场景一般我们都是APP内部支付,客服端 集成流程如下:添加依赖我这里是以jar形式导入进来的可以去官网下载的在build.gradle中申明一下原创 2020-10-29 14:55:09 · 1526 阅读 · 0 评论 -
Kotlin实现的手机正则以及身份证正则判断
项目中常用的一些正则判断如手机号、身份证判段手机号正则/** * 手机号码正则判断 */ fun isPhoneNum(phone: String): Boolean { val compile = Pattern.compile("^(13|14|15|16|17|18|19)\\d{9}$") val matcher = compile.matcher(phone) return matcher.matches()原创 2020-10-19 11:38:21 · 2278 阅读 · 0 评论 -
Kotlin bitmap 转byte
前言在做分享的时候需要将bitmap转成byte数组输出,如下:object BitmapUtils { private val TAG = "BitmapUtils" fun bmpToByteArray(bmp: Bitmap, needRecycle: Boolean): ByteArray { val output = ByteArrayOutputStream() bmp.compress(Bitmap.CompressFormat.PNG,原创 2020-10-19 11:28:20 · 1199 阅读 · 0 评论 -
Android 快速点击多次响应点击事件处理
分享一个按钮快速点击多次响应点击时间的工具类如下:public class OnClickUtil { /** * 最小允许间隔,低于则无法生效 */ private static final long INTERVAL = 500; /** * 上次点击时间点 */ private static long lastTime; /** * 是否点击过快 * * @return *原创 2020-10-19 11:22:47 · 1053 阅读 · 0 评论 -
Android中多行文本末尾添加图片排版问题的解决方法
前言项目中处理交易号的时候末尾有复制按钮,交易号末尾可以点击图片复制,当时立马就想到了textview图文混排、包括通过TextView.setHtml 来实现都发现一个问题就是:他自己会未占满就换行了。类似这种0xadd65c570fc6381b85479df607e1afad2f3c90dfjsad3464382首先drawableRight这种肯不行的应为是多行,而使用ImageSpan会出现未占满就自己换行了。解决方式其实主要问题是:换行之后还是会留一段空白,并没有占满,发现是因为当原创 2020-10-19 11:11:01 · 958 阅读 · 0 评论 -
Android点击通知页面不刷新intent无法传值问题
由于项目是单Activity多fragment实现的,做极光推送处理的时候要求点击通知栏,跳转到消息那个fragment,我们知道在推送里面通过重写BroadcastReceiver通过bundle拿到值设置跳转的,很遗憾,那个Activity一直是在前台的,并且启动模式是:singleTask结果即便我的intent是:intent.setFlags(Intent.FLAG_ACTIVITY...原创 2020-04-03 16:03:53 · 625 阅读 · 0 评论 -
Android关于极光推送屏蔽掉默认推送,自己写本地推送处理
前沿集成极光推送大概有七八回了吧,本以为轻车熟路的,结果你永远干不过PM的脑洞。我们项目是要做国际化的,也就是多语言适配,但是测试推送的时候发现一个问题就是如果你转账的手机是什么语言,那你收款手机收到推送的语言就是什么,产品不干了说:收到推送应该和当前APP内部语言保持一致。可是后台发的推送就这个语言呀,结果开始互相甩锅了。。。。。解决方案本地负责的态度决定自己本地做处理吧,自己的思路是首...原创 2020-04-01 10:34:54 · 1501 阅读 · 0 评论 -
Android 设置属性动画AnimatorSet设置pause无效问题
前言项目中做广告页动画,要求页面不可见(onpause、onstop)暂停动画执行,于是:/***初始化动画、以及相关动画执行*/AnimatorSet set = new AnimatorSet(); set.playTogether(animator, animator1);// 同时执行 set.setDuration(mLoadin...原创 2019-11-26 10:09:58 · 2224 阅读 · 0 评论 -
android倾斜角标实现
前言最近产品有一个需求是:要在一个距形卡片上做一个倾斜的Tag,类似:(PS:不要注意那两毛三分的穷鬼),刚开始想着用UI切图就可以了嘛,but是不可以的,在不同手机上分辨率是不同的,直接用图片适配肯定会有问题,所以打算自定义。实现思路额画图太丑了,这里解释一下:这里以左上角为例,我们可以把手机屏幕看成是一个直角坐标轴,我们要画一个斜角标示,只需要在我们的距形框内画一个正方形通过正方形的对...原创 2019-10-16 11:05:27 · 2027 阅读 · 1 评论 -
java的四种引用
强引用(StrongReference)软引用(SoftReference)弱引用(WeakReference)虚引用(PhantomReference)或幽灵引用 强引用 强引用在java中最常用的引用一般我们定义的变量都是强引用如:public class Main { public static void main(String[] args) {原创 2017-06-14 16:58:10 · 333 阅读 · 0 评论 -
集合类详解
做安卓开发时,我们都知道Android是基于java开发的,并且安卓很多地方都会用到集合,所以这里把java中的集合做一下总结集合概述集合和数组比较集合在我们的 java.util包中,其实很多地方集合和数组很相似的,这里把集合和数组进行一下简单的比较:数组的长度是固定的,而集合的长度是可变的数组用来存放基本数据类型,而集合用来存放对象的引用。集合类的继承关系常用的集合有List,Set和Ma原创 2017-08-26 11:17:05 · 414 阅读 · 0 评论 -
你好,错过的挚友
你好,错过的挚友几天前晚上,一个一起长大,曾经无话不说的朋友说她今年十月就要结婚,虽没说,但我知道她很期待我能参加他们的婚礼。 她退学很早,然后一直漂在常州,从告诉我她有男朋友到准备结婚,给我一种很迅速的感觉。我以前一直以为我最了解她:爱自由,大方,虽然外表大大咧咧,但内心却很少女。 而如今她要为人妇了。想起来,我们认识有十年之久了,从一起玩耍,一起上学,到现在的为了生活奋斗在天涯,我还记得那年原创 2017-10-08 20:15:02 · 641 阅读 · 3 评论 -
洒脱不了的回首
路——2017好几天碌碌无为了,本想找一些有意义的事情做,来纪念一下这个即将过去的2017——充满无数未知,和期待收获的一年,但仔细想想,倒也没什么可做,往事随风,真不确定有什么事情值得以后念念不忘,而现在的我,也不需要什么回响。如果非得留下什么的话,只想到了一大推“习惯”。习惯了刷知乎到凌晨,然后顶着黑眼圈早起,惶惶不可终日!原来自己早已过了嗜睡的年纪,无忧无虑估计死在梦里了。 也习惯了程序化的原创 2017-10-11 20:36:30 · 504 阅读 · 5 评论 -
RecycleView的刷新,点击监听以及下划线设置
前言RecycleView功能已经非常强大了,可以说它已经是ListView的替代品,而它的刷新XRecycleView也刚好是XListView的替代品,下面就是实现在Xutils框架下的XRecycleView的刷新,监听和下划线设置。 (对于Xutils不了解的可以参考:http://blog.youkuaiyun.com/qiaoshi96_bk/article/details/74613542原创 2017-08-13 13:28:33 · 1160 阅读 · 3 评论 -
仿今日头条的频道管理
前言 做了一个仿今日头条的频道管理,虽然用别人写好的库,但是真正想去实现时发现了不少问题如何把上面的TabLayout和下面的Viewpager关联起来当点击添加时如何保存信息(下次进入时添加的频道仍然存在)如何加载不同的数据(根据什么来判断) 用到的第三方maven { url "https://jitpack.io" } compile 'com.github原创 2017-07-23 16:49:45 · 3522 阅读 · 15 评论 -
安卓提示控件(Sanckbar,alertdialog,Toast)用法
前言安卓中常用的提示控件Snackbar,Alertdialog ,Toast 都有对用户操作进行提示功能但是他们之间也是有差别的Alertdialog 它会覆盖在界面的最上面,提示你,并且一般都需要进行具体操作才可以进行下一步(具有强制性,并且对用户不怎么友好)Toast 只是一般的提示作用,只是告诉用户进行某项操作,而不会对用户选择有直接的影响Snackbar 是加强版的Toast 他也原创 2017-08-01 14:31:34 · 699 阅读 · 0 评论 -
Android自定义view——组合控件
前言当我们需要使用标题栏时,很显然标题栏都是一样的,这个时候我们就很可能使用组合控件,既然是组合控件我们当然是把几个已有的控件组合到一起。这里我们打算实现如下效果: 组合两个button和一个TextView来模拟标题栏对ActionBar的处理我们自定义了标题栏我们便可以将原有的actionBar给隐藏,此时在MainActivity里:// 隐藏Actionbar原创 2017-08-04 15:18:47 · 2858 阅读 · 0 评论 -
XListView的使用以及本地缓存
本工程实现了下拉刷新以及当没有网络时从本地读取和对MD5加密的应用。用到的接口:http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0XLIstView是谷歌提供的下拉刷新控件 原码地址:https://github.com/Maxwin-z/XListView-Android 由于谷歌已经不再维护所以用起来比较麻烦,在使用之前:可以原创 2017-06-20 15:46:20 · 375 阅读 · 0 评论 -
简单的ImageLoader和导入Glide来操作图片
安卓中提供的这个两个方法都非常的好用实现的代码也非常简单 先上代码package com.example.administrator.imageload;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Handler;import android.os.Message;import andr原创 2017-06-16 19:21:42 · 885 阅读 · 0 评论 -
进入一个APP时对手机网络判断(使用广播和不使用广播)
由于大部分的软件都需要网络所以当打开软件时判断当前是否有网络并且进行相关的网络设置都是非常重要而常见的。 实现效果当没有网络时提醒用户是否去网络设置: 权限:需要在清单文件里面配置 uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />代码:package com.example.admin原创 2017-07-02 20:04:27 · 854 阅读 · 0 评论 -
xUtils的简单使用方法(网络请求 ,以及增加到数据库)
简介 xUtils是一款简单的对网络请求以及数据库操作的工具,并且提供了非常好的异常处理方法onError,并且对图片的加载显示等一系类操作也非常简介好用。使用注解来加载布局控件的方法也非常的简单好用 用法添加依赖库compile 'org.xutils:xutils:3.5.0'下面就可以对XUtils进行操作了,首先初始化数据xUtilspackage com.bawei.qiaoshi原创 2017-07-06 22:10:34 · 1339 阅读 · 0 评论 -
解决Fragment +Viewpager滑动页面重复加载的问题
前言 之前在做一个Viewpager上面加载多个Fragment时总会实例化已经创建好的Fragmnet对象类似 viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int po原创 2017-07-09 11:45:04 · 2372 阅读 · 0 评论 -
PhotoView的简单使用(在ViewPager里面的触摸处理)
前言 当对图片进行缩放操作时,会用这个第三方的PhotoView使用之前我们必须添加仓库管理和依赖 Add this in your root build.gradle file (not your module build.gradle file maven { url "https://jitpack.io" }然后, 添加到 module build.gradle里面(这是原创 2017-07-24 22:03:01 · 3248 阅读 · 0 评论 -
Android混淆文件配置
前言正常一个APP都会开启混淆,但是有时后接手的项目并没有开启混淆,然后自己修改的时候就很蛋疼,因为开启混淆便会报错,如果有一些没有用过的第三方库更要自己去处理,这里就记录一下安卓常见的混淆文件和常规用法。混淆好处以及哪些是不能混淆的面试常问混淆好处,我们张口就来:打包时会去掉无用资源有效减少APK体积(尤其对一些开发不规范导致很多无效代码和资源文件)其实这也可以变向的解决64k问题增...原创 2019-09-26 20:56:50 · 3096 阅读 · 2 评论