![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓
qiaoshi96_bk
一个啥也不是的android开发
展开
-
常用的一些小排序算法之冒泡排序,直接选择排序,反转排序
前言常常会被问一些排序算法,可能对于客户端开发来说,直接用到的地方不多,即便是用到了也可以直接调用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 · 225 阅读 · 0 评论 -
Android集成支付宝支付(Kotlin)
前言之前从头到尾独立开发一个小项目,于是尝试用Kotlin来完成,基本写完就爱上了kotlin了。可以说相比较Java是相当的舒服,项目中涉及到支付,于是自己负责支付宝支付的整个流程包括申请账号,材料准备等,下面记录下整个流程账号申请账号一般都是公司提供的,登陆后需要签约支付,蚂蚁金服官网里面会有APP支付客户端Dome具体使用场景如下支付场景一般我们都是APP内部支付,客服端 集成流程如下:添加依赖我这里是以jar形式导入进来的可以去官网下载的在build.gradle中申明一下原创 2020-10-29 14:55:09 · 1326 阅读 · 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 · 1962 阅读 · 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 · 1057 阅读 · 0 评论 -
Android 快速点击多次响应点击事件处理
分享一个按钮快速点击多次响应点击时间的工具类如下:public class OnClickUtil { /** * 最小允许间隔,低于则无法生效 */ private static final long INTERVAL = 500; /** * 上次点击时间点 */ private static long lastTime; /** * 是否点击过快 * * @return *原创 2020-10-19 11:22:47 · 967 阅读 · 0 评论 -
Android中多行文本末尾添加图片排版问题的解决方法
前言项目中处理交易号的时候末尾有复制按钮,交易号末尾可以点击图片复制,当时立马就想到了textview图文混排、包括通过TextView.setHtml 来实现都发现一个问题就是:他自己会未占满就换行了。类似这种0xadd65c570fc6381b85479df607e1afad2f3c90dfjsad3464382首先drawableRight这种肯不行的应为是多行,而使用ImageSpan会出现未占满就自己换行了。解决方式其实主要问题是:换行之后还是会留一段空白,并没有占满,发现是因为当原创 2020-10-19 11:11:01 · 866 阅读 · 0 评论 -
Android点击通知页面不刷新intent无法传值问题
由于项目是单Activity多fragment实现的,做极光推送处理的时候要求点击通知栏,跳转到消息那个fragment,我们知道在推送里面通过重写BroadcastReceiver通过bundle拿到值设置跳转的,很遗憾,那个Activity一直是在前台的,并且启动模式是:singleTask结果即便我的intent是:intent.setFlags(Intent.FLAG_ACTIVITY...原创 2020-04-03 16:03:53 · 553 阅读 · 0 评论 -
Android关于极光推送屏蔽掉默认推送,自己写本地推送处理
前沿集成极光推送大概有七八回了吧,本以为轻车熟路的,结果你永远干不过PM的脑洞。我们项目是要做国际化的,也就是多语言适配,但是测试推送的时候发现一个问题就是如果你转账的手机是什么语言,那你收款手机收到推送的语言就是什么,产品不干了说:收到推送应该和当前APP内部语言保持一致。可是后台发的推送就这个语言呀,结果开始互相甩锅了。。。。。解决方案本地负责的态度决定自己本地做处理吧,自己的思路是首...原创 2020-04-01 10:34:54 · 1398 阅读 · 0 评论 -
Android 设置属性动画AnimatorSet设置pause无效问题
前言项目中做广告页动画,要求页面不可见(onpause、onstop)暂停动画执行,于是:/***初始化动画、以及相关动画执行*/AnimatorSet set = new AnimatorSet(); set.playTogether(animator, animator1);// 同时执行 set.setDuration(mLoadin...原创 2019-11-26 10:09:58 · 2088 阅读 · 0 评论 -
android倾斜角标实现
前言最近产品有一个需求是:要在一个距形卡片上做一个倾斜的Tag,类似:(PS:不要注意那两毛三分的穷鬼),刚开始想着用UI切图就可以了嘛,but是不可以的,在不同手机上分辨率是不同的,直接用图片适配肯定会有问题,所以打算自定义。实现思路额画图太丑了,这里解释一下:这里以左上角为例,我们可以把手机屏幕看成是一个直角坐标轴,我们要画一个斜角标示,只需要在我们的距形框内画一个正方形通过正方形的对...原创 2019-10-16 11:05:27 · 1879 阅读 · 1 评论 -
Sqlite简单使用
前言Sqlite是Android自带的轻量级数据库,一个项目中多多少少都会有用到数据库地方像,下载、以及做一些埋点上传等,但是自己很少从头到尾去写过数据库。这里整理一个dome记录一下包括常用的(增、删、改、查和数据库升级)。SQLiteOpenHelper创建数据库的帮助类具体代码如下://创建数据库帮助类public class CustomSQLiteOpenHelper exte...原创 2018-09-28 11:04:23 · 330 阅读 · 0 评论 -
Android WeView于js交互
前言项目中遇到要通过原生去分享h5页面的内容,但是产品经理的需求比较奇葩:如果当前页面存在分享方法则去调取页面分享的方法,如果没有则取页面的第一张图片为分享图片,description为分享内容拿到需求的时候心里一愣一愣的,卧槽还有这种操作但是产品大人在上还是想办法去实现了。思路我当时想,通过WebView我们可以拿到页面的title和URL但是产品的需求时页面有分享方法得...原创 2018-08-02 22:45:05 · 316 阅读 · 0 评论 -
Android中Strings 使用
我们都知道在Android中有一个Strings.xml文件我们也常常把一些常用的,固定的文字放在下面,这样的好处也显而易见小方面对于文案修改时我们只需要动这一个地方,大方面如果是对于国际化的APP也方便翻译成不同的语言。基本用法如果只是简单的一句话:<string name="title">这是标题</string>而在需要使用的地方: xx....原创 2018-05-23 13:53:38 · 3787 阅读 · 0 评论 -
Android如何定时向服务器发送请求
前言项目中有需求就是没过一断时间去向服务器发送请求然后去刷新UI其实思路还是比较多的但是我还是选择了CounterDownTimer方法 。CounterDownTimer话说其实用法很简单就是通过一个onTick方法来实现定时执行。但是怎么去实现了,对就是为什么。没看源码之前我猜它的大概思路是:获取系统时间用来判断通过handler机制切换线程一些具体完成开始的操作 ...原创 2018-05-17 13:30:17 · 8203 阅读 · 2 评论 -
Android 自定义Popwindow
前言没事帮朋友写一个Popwindow本来以为是很简单是事,但是做的时候遇到很多问题(差点气的我吐血)所以写篇博客记录一下,也算是给自己手高眼低的一个教训。 看到UI的时候基本上就知道怎么实现了:1, 自定义一个Popwindow的布局 2,按钮的逻辑 然后以为基本上就搞定了。 但是自己的大意忘记了Popwindow常见的几个坑:一定要设置背景颜色不然他会遮住全部让你获取不到其他控...原创 2018-04-02 20:05:17 · 5420 阅读 · 3 评论 -
Android中shape通常用法
前言线条的设置在APP中用的地方是很多的,比如很多小模块之间的分割,而这些绝大多数用shape都是可以实现的,但是在实际的使用中也会有小坑,比如如果是虚线呢 ?如果那条虚线要是垂直的呢?所以这里简单的实现以下让我们来趟一趟这浑水。shape实线如果要实现肯定会有人说这个简单用view也可以啊我把它的height设置成1dp在给个背景颜色不就可以了吗,说的确实很有道理我也这样做过要是用s...原创 2018-02-17 22:42:19 · 2493 阅读 · 0 评论 -
布局底部弹出动画
前言项目中有一个需求是日期筛选是从底部慢慢往上弹出的效果,当时想到的是通过给布局一个展示动画来实现,然后就各种百度如何实现:创建anim首先在drawable文件夹下创建anim文件夹来存放动画布局,动画效过分为两部分:**底部弹出动画 ** bottom_show.xml<?xml version="1.0" encoding="utf-8"?><set xmlns...原创 2019-04-15 20:57:02 · 1521 阅读 · 0 评论 -
TextView实现图文混排
前言我们都知道很多时候后台返回给我们的一段富文本类似这样:<p><img alt="laugh" height="23" src="http://img3.imgtn.bdimg.com/it/u=3140599426,288343775&fm=26&gp=0.jpg" " + "title=\"lau原创 2018-02-27 10:25:11 · 454 阅读 · 0 评论 -
Android studio如何创建Kotlin工程
前言Kotlin已经出来有一段时间了,其实本人还是比较喜欢java的,但是作为一名合格的Android开发不懂kotlin肯定是说不过去的。(主要面试老是被问)所以决定花点时间来研究一下,记录自己从入门到放弃,说实话不太喜欢那些高级语言,简单就意味着会有高度的封装,这样知其然不知其所以然的感觉是很痛苦的,但是毕竟是Google的亲儿子所以未来很可能是从事Android开发的一种趋势,下面就简单记...原创 2018-10-08 17:56:28 · 7597 阅读 · 1 评论 -
Kotlin基本数据类型
前言本人学Kotlin是冲着做安卓去的,所以一开始上来就借助Android studio成功创建一个Kotlin文件,洋洋洒洒用Kotlin写几个控件,然后直呼Kotlin大法好啊,自以为入门了,其实NO!NO!NO!, 写一个成序就好比盖一座房子,你只有熟悉每一块材料的用途,才能盖出你想要的房子。打完脸后决定从地基开始。基本数据类型和java类似Kotlin也有自己的基本数据类型,语法差别...原创 2018-11-03 16:24:52 · 827 阅读 · 0 评论 -
Kotlin中Set、Map、List 容器使用
前言之前讲了Kotlin中基本数据类型和String字符串拼接的一些基本用法,这里学习一下kotlin中数组和集合容器,其实挺想上来就用kotlin写页面的,毕竟那样有成就感,也不会枯燥无味,但是从java学过来深知基础的重要,所以还是一步一步来。数组声明kotlin中基本类型的数组声明,初始化一个整形数组: var int_arr: IntArray = intArrayOf(1, 2...原创 2018-11-11 18:39:19 · 8243 阅读 · 1 评论 -
基于RecycleView实现的头部悬浮控件
前言前几天看到一个RecycleView中筛选框滑动可以悬浮在头部的效果类似商机盒子中的商机模块。本来想法很常规通过Recycview装饰器来实现(刚开始是否定掉的感觉太难)通过Recycleview滑动监听,判断当前可见的item是否是我需要处理的,然后通过显示隐藏来做简单的逻辑处理(但是做的时候效果不尽人意,同时Recycleview是有弹性滑动的,那段距离我监听不到,遂卒。)通过...原创 2019-01-26 23:16:03 · 662 阅读 · 0 评论 -
Kotlin中的一些判空操作、空安全
前言很久没有更新博客了,其实并不是因为太忙,也不是遇到的问题不多,是迷茫了,不知道怎么去写,总感觉自己一定会去好好的写文章(哈哈幻想中),但是从来没有动过笔,因为写不好,能力不够。但是还是要去动笔呀!最近在项目中使用kotlin了之前也学了点,但是写起来还是很费力,被kotlin的判空操作搞的头昏脑胀的,这里整理一下。Kotlin 校验字符串空值isNullOrEmpty:为空指针或者字...原创 2019-05-24 15:32:31 · 13193 阅读 · 0 评论 -
Android AES加密密文一直变
前言做AES加密的时候本来想着直接把后台给的AES代码copy过来发现有个很奇葩的问题:我直接写main方法运行解密是OK的然后app运行却不可以每次秘文都是改变的。各种百度也不行好像是jvm什么的不兼容安卓这边,于是后台大佬做了下兼容发给我了。亲测可用。import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;...原创 2019-06-12 10:52:12 · 843 阅读 · 0 评论 -
Android混淆文件配置
前言正常一个APP都会开启混淆,但是有时后接手的项目并没有开启混淆,然后自己修改的时候就很蛋疼,因为开启混淆便会报错,如果有一些没有用过的第三方库更要自己去处理,这里就记录一下安卓常见的混淆文件和常规用法。混淆好处以及哪些是不能混淆的面试常问混淆好处,我们张口就来:打包时会去掉无用资源有效减少APK体积(尤其对一些开发不规范导致很多无效代码和资源文件)其实这也可以变向的解决64k问题增...原创 2019-09-26 20:56:50 · 2888 阅读 · 2 评论 -
由Android禁止viewpager滑动,想到的安卓事件分发机制
前言产品有个需求是两个tab页面可以左右切换,当时立马想到我用viewPager+fragment,但是我们知道viewPager默认是可以左右滑动的,而我的需求是只可点击不可滑动,于是我就翻了一下viewpager的API发现并没有可以设置是否可以滑动的相关方法。于是我就想是否可以通过事件的分发机制去拦截它左右滑动的touch。果不其然!public class myViewpager ex...原创 2019-10-08 16:48:05 · 273 阅读 · 0 评论 -
Tablayout+Viewpager的简单使用
tablayout通常是实现最上面的导航栏所以在这里简单的写一下(图片展示的还没写) 首先再用Tablayout之前需要 compile 'com.android.support:design:26.0.0-alpha1'贴出一些常用的属性 属性名 解释 tabContentStart 开始位置的偏移量 tabBackground 设置Tab的背景色 tabGravit原创 2017-06-25 19:38:06 · 1447 阅读 · 0 评论 -
陪我一起走过的面试坑
前言 最近一直忙,忙着找工作,忙着搬家,忙着添衣服。。。不得不说,进入十一月的北京真的很冷。 两个多礼拜,面了有十几家公司,也不乏拿到几个offer,但是更多的是踩的坑,以及对自己技术水平、自我认知的不断提升!作为过来人一直想说句话:当你迷茫的时候,当你需要改变的时候,不妨投几家公司,来几个面试,肯定会有意外收获。 作为一名安卓开发,总结一下面试常遇到的问题吧!其实你技术面的时候可以把面试的过原创 2017-11-29 23:36:55 · 312 阅读 · 0 评论 -
关于支付宝的支付流程
关于支付现在的电商项目已经非常火爆了,随之而来的像支付宝,微信等第三方支付也非常的火爆,所以这里简单的说一下支付宝的支付流程。支付步骤工作前准备首先我们需要在蚂蚁金服官网上面注册一个开发者账号,上面有关于开发者的文档和需要的SDK到这我们就可以做一些实质性的开发了。创建应用并获取APPID配置秘钥 这里会生成RSA秘钥,(就是一种非对称的加密)的加密方式 它的秘钥分原创 2017-10-26 14:41:46 · 2849 阅读 · 0 评论 -
OKHTTP的简单封装
前言我们常用的网络框架大致有三个:Xutils,Volly,和OKhttp,前两个随着谷歌对OKhttp的推出基本上被取代了,既然被取代了,就肯定有它们的不足。 Xutils:博而不精,它包含的功能很多,像网络请求,加载图片,注解,数据库。。。这些导致它的包非常大,并且对我们框架的更新也比较困难。 Volly:速度快,但是不支持下载大文件,这个局限也就约束它的使用范围,以及框架的广度。 OKh原创 2017-09-09 11:36:10 · 2392 阅读 · 2 评论 -
抽屉式布局DrawerLayout的实现
DrawerLayout的简单使用方法重点是在布局方面几个比较重要的注意事项布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main原创 2017-06-14 21:21:59 · 526 阅读 · 0 评论 -
AsyncTask
AsyncTask的个人使用总结 1. 实现AsyncTaskpackage com.example.administrator.asynctaskjob;import android.os.AsyncTask;import android.widget.TextView;/****@作者: 乔石*@日期: 2017/6/13*/public class ASyn extends原创 2017-06-13 21:42:55 · 278 阅读 · 0 评论 -
Dome小总结
前言 花了业余时间做了一个很low也比较简单的小dome,但是其实做的时候并不是自己想的那么简单,到也学了不少新的知识,把一些有用的知识点总结一下吧,不然又石沉大海了。 Dome地址 聚文小Dome:http://download.csdn.net/my - 卡片式布局 - 用recyclerview代替了listview - Snackbar的详细用法 - 分享到QQ微信等聊原创 2017-07-13 10:59:33 · 392 阅读 · 1 评论 -
进入一个APP时对手机网络判断(使用广播和不使用广播)
由于大部分的软件都需要网络所以当打开软件时判断当前是否有网络并且进行相关的网络设置都是非常重要而常见的。 实现效果当没有网络时提醒用户是否去网络设置: 权限:需要在清单文件里面配置 uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />代码:package com.example.admin原创 2017-07-02 20:04:27 · 810 阅读 · 0 评论 -
非常好用的底部导航栏
在做底部导航栏时发现自己写选择器之类的非常麻烦于是上网搜了一下发现一个非常好用的底部导航栏: 简书:http://www.jianshu.com/p/ade8485a16be Github:https://github.com/hujinmeng/MyApplication 我选择了版本比较高的。compile 'com.hjm:BottomTabBar:1.1.1'具体方法可以看连接地址:原创 2017-06-25 14:04:25 · 9847 阅读 · 0 评论 -
安卓中白天模式和夜间模式的切换
前言 安卓是自带模式的,我们在styles.xml便可以设置标题栏显示的颜色(白天和夜间模式当然也就可以通过切换主题来实现) 设置切换之间的动画 在res下面新建anim文件夹然后在里面创建切换动画 in.xml <!-- interpolator 这个是动画变化的频率 快 慢 等--> <alpha android:duration="0" an原创 2017-07-12 14:52:19 · 3842 阅读 · 3 评论 -
ListView的多条目展示
目录目录ListView多条目展示的简单实现自局部list_item子布局2 list_item02MainActivity布局MainActivity代码适配器里面总结ListView多条目展示的简单实现简单是实现步骤:准备两个展示不同布局的两个子布局连接网络的权限准备用到的GSon和Imageloader自局部list_item<?xml version="1.0" enc原创 2017-06-21 11:13:09 · 623 阅读 · 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 · 336 阅读 · 0 评论 -
Material Design——Toolbar
Material Design Material Design里面许多控件都可以设计出非常美观的UI效果Toolbar就是其中之一并且在许多APP上面都广泛应用 Toolbar Toolbar和Actionbar非常的类似也可以说Toolbar是Actionbar的升级版。 首先在布局里面: 既然说Toolbar是Actionbar的升级版并且作用的范围都是在头部,所以要想Toolbar显原创 2017-06-18 15:16:45 · 254 阅读 · 0 评论 -
非常好用的无限轮播
在GitHub看到一个非常好用的无限轮播分享给大家 地址:https://github.com/youth5201314/banner(其实他们提供的方法已经很简单了,在这个里我在更简化一下。) 依赖库(配置完成才可以实用)dependencies{ compile 'com.youth.banner:banner:1.4.9' //最新版本}在清单文件里面配置权限<!-- if y原创 2017-06-17 08:28:42 · 491 阅读 · 0 评论