自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (18)
  • 问答 (2)
  • 收藏
  • 关注

原创 Android 音频基础(三)——播放(AndroidTrack)

上一篇帖子我记录了音频采集的一些内容,既然有采集了,那么肯定是需要播放的,今天这篇帖子就简单说一下录音的播放步骤。录音的播放需要用到的是Android中的AudioTrack类,其实AudioTrack类和AudioRecord很相似,我们同样从AudioTrack的初始化开始说起。 ...

2020-07-07 12:59:19 1025

原创 Android 音频基础(二)——录音(AudioRecord)

在Android的世界中,一般有两种音频采集的方式,MediaRecorder和AudioRecord,但是MediaRecorder最终还是走到AudioRecord里,让AudioRecord和AudioFlinger进行交互,所以这篇博文就不介绍MediaRecoder了,主要介绍下AudioRecord的录音(音频采集)情况。基本参数1....

2020-07-02 13:12:17 1948

原创 Android 音频基础(一)——音频简介

要想进行音频开发,我们首先要知道声音是什么,声音又是如何产生的,又有哪些特性,只有了解了这些基础知识,我们才能更好的上手开发。声音:音频:以上是百度百科对声音和音频的专业解释,不管你们看没看懂,反正我是没看懂。根据初中的物理知识来说,声音是由震动产生,并通过某种介质传播,能被人耳识别的都称之为声音(音频),而音频则为声音的更专业称呼。声音的属性:音量:音量比较好理解,就是声音的响度,人耳主观感知上声音的强弱。音调:音调就是人耳对不同频率的不同听觉感受,与频率和音量有关音色

2020-06-13 14:18:54 612

原创 Android 使用BitmapFactory.decodeFile()文件转图片出现null值

最近用户提了个单子是上传某张图片时会闪退,日志显示是压缩图时获取的的bitmap为null最开始以为是用户路径有问题,毕竟谷歌大大改了那么多版本,又是权限,又是隔离缓存的,谁知道用户什么版本,什么情况。直到联系用户拿到图片才知道是自己丢的代码问题。emmm.........具体代码就不说了,直接说几种解决方案吧1.第一种:路径问题看到null值,首先想到的就是是不是路径不对,知道拿到图片后,一步步打印,发现路径是正常打印出来的。其他图片也正常,但是就当前图片报空指针。emmm....

2020-05-27 17:26:07 6430 1

原创 Android WebView 持久化问题(Cookie保存)

前言: 最近公司把原生Android换成了React Native混合开发(别问我为什么不用Flutter,因为前端人员不会,移动端也不会,,,,),然后功能就由移动端完全搬到了Web端,IOS和Android使用UIWebview和WebView集成使用。了解:React Native(以下简称RN)技术是有Facebook(脸书)公司提供的一个的ReactUI框架,使用...

2019-07-29 15:22:08 1953

原创 Python Django 学习日志(三)

前言上一篇文章我简单说了一下数据库的创建和使用,简单的写了一个登录页面,也实现了数据的存储功能,当然这样说肯定不够的,既然能存,那肯定也要能读,不然我要它何用对吧。这篇文章我就说一下怎么读取存入的数据,以及将数据序列化成JSON格式的数据返回,并提供接口让前端/移动端调用。一:了解抛开那些专业的词汇,简单来说我的理解就序列化就是把数据库或者内存的数据通过某个方法转换成json这个过程就...

2019-07-12 15:55:07 155

原创 Python Django 学习日志(二)

前言上篇文章大概介绍了Python和django的一些基本操作,这篇文章将会介绍数据库的一些东西,简单写一个登录注册功能,并与数据库进行交互,注册后可以存入到数据库,登录后可以看到个人信息。一:登录首先新建一个login页面,并增加两个输入框和一个提交按钮,一个用于输入用户名,一个用于输入密码,并将密码输入框type改为password,这样将会密文显示,而非明文。login.ht...

2019-06-24 22:26:42 365

原创 Python Django 学习日志(一)

前言迷茫了一段时间,最近这段时间看了点Flutter,JavaScript,Html,干什么都提不起兴趣,嗯~ o(* ̄▽ ̄*)o,我想可能是因为华为被老美封杀了影响心情,开个玩笑。呵呵呵,感觉自己Android开发到了一个瓶颈期(主要是基础没打牢,还太懒),一时半会突然提高也挺难的,就想着手学习其他相关知识,拓展下自己的视野和宽度,学习下后端开发,然后反哺移动端,最后再想突破,算是另类尝试吧...

2019-06-12 16:06:01 230

原创 使用Flutter撸一个登录页面

自从谷歌发布了Flutter正式版之后,Flutter也慢慢热了起来,以前也没怎么接触Dart,刚接触Flutter的时候说实话一脸懵逼,二脸懵逼,三脸还是懵逼,差点都自杀谢罪再也不看这玩意了;;; 初次接触Flutter你可能会非常不习惯,因为Flutter从使用习惯到架构模式,再到编程逻辑什么都不一样,熟悉的XML布局没有了,熟悉的Activity也没有了,...

2019-04-26 10:54:01 1580

原创 Android 广播、服务、对话框直接交互

前两天公司给了一个新需求,就是要求移动端内部有个开关,定时访问后台,当后台返回数据为true时展示对话框,但是不让用户知道。本来跟大佬说加个推送更方便快捷简单,还减少服务器压力。。。但是老板不允许,本着老板就是上帝的态度,那就做呗。既然不然用户感知那就用个Service吧,后台运行就行了。说搞就搞,先写一个服务public class MyService extends Service ...

2019-04-03 14:20:01 253

原创 Android 百度地图获取定位信息并实时传给后台

最近公司提了一个小case,因为公司物流师傅配送完货物后,通常回仓库都是空车,而这是严重的资源浪费,所以领导就给了一个小case,实时定位司机路线,先建立司机行车档案,在考虑其他业务,反正也是比较空,就随便写了下,没什么太多的功能,就随机记录个demo吧,用的是百度地图的SDK需求很简单,就是司机打开APP后APP在手机后台传递数据,没有操作页面,其他功能暂时搁置了,先建立档案,很简单的一个c...

2019-03-29 14:00:16 6059 2

原创 Android Toast Error This Toast was not created with Toast.makeText()

今天运行APP时突然闪退了,马上打开logcat看日志,看看什么情况,错误如下:java.lang.RuntimeException: This Toast was not created with Toast.makeText()显而易见,是自己的Toast出错了,这是为什么呢,终于在Toast.setText() 方法内部找到了原因/** * Update the text ...

2019-03-18 15:44:50 201

原创 Android 数字转中文

前两天公司同事在群里扔了一个小case让大家换换脑子,把数字转换为会计上使用的大写汉字,想想也挺有意思的,就写了给小Demo。具体的不多说了,直接看代码吧,一个挺实用的简单例子 public static String[] chineseCode = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒",

2019-03-11 16:49:35 1080

原创 带你走进组件化(四)—— 通幽

前言上一篇文章我大概罗列组件化初期碰到的一些问题,主要为组件化文件冲突,组件之间跳转,组件之间传值等问题,而我也一一对这些做了说明和示例。这里就不在重复了,今天这一篇文章主要是对前几篇文章的总结,以及对组件化的实践,简单封装一些常用工具,然后集成调用等。baseUtils模块我们新建一个library,取名为baseutils,主要作用是封装一些常用的第三方控件等,如Toast,Log,等...

2019-01-09 16:13:49 159

原创 带你走进组件化(三)—— 曲径

前言上两篇文章我们初步掌握了组件化的使用和创建,今天就梳理一下组件化公共模块的封装,以及会出现的问题,模块之间如何通信,跨模块如何跳转传值等公共模块封装模块之间通信第三方公共资源提取延展AndroidX跨模块之间跳转传值问题梳理总结...

2019-01-04 10:18:14 263

原创 带你走进组件化(二)—— 初探

准备工作创建一个新的工程,编译完成后新建一个Module工程:File>New>New Module,一路Next,记得给你的Module命名 最后结构目录如下:总所周知,组件化因为需要引用各个不同的module组件,如果都引用了同一种第三方包,但是可能因为版本号不同会出现资源冲突问题,所以我们为了更好的管理各个module之间的版本关系,先创立一个统一的配置文件,...

2018-12-26 10:51:38 114

原创 带你走进组件化(一)—— 认识

再写这篇文章之前我看了很多关于组件化的文章,但大多数都是讲了一些'玄而又玄'的东西

2018-12-19 11:17:36 958

原创 Retrofit 2 使用方法,一个便捷的网络加载库

Retrofit是什么,Retrofit可以理解为OkHttp的强化版,它底层基于OkHttp,但是又对其做了封装和处理,又使用大量注解对代码进行简化,且支持很多开源库,例如OkHttp+Retrofit+RxJava使用Retrofit有什么好处呢?看到RxJava就可以知道Retrofit支持同步异步请求,还可以配置不同的HttpClient实现网络请求,而且还有一个非常大的用途就是解耦。...

2018-12-17 16:49:51 448

原创 OKHTTP3 基础使用方法

OkHttp用了也快一年了,但是从来没有系统的了解这个被Android开发者推崇备至的网络请求框架,今天就来简单梳理一下OkHttp的使用方法,简单了解下OkHttp工作原理OkHttp官网地址OkHttp-GitHub地址首先我们看下官网怎么介绍OkHttp的简单来说OkHttp是一款适用于Android和Java应用程序网络请求框架,支持Get和Post请求,支持上传下载文...

2018-12-07 11:17:47 903

原创 RxJava入门实践(二)

上篇博客遗留了一个问题,既然是RxJava异步的,为什么是先执行先点击的,然后执行后点击的呢?这就引出了我们今天要说的另一个问题:异步线程subscribeOn就是用于指定监听时所发生的线程,我们进去看下源码情况由注释可以看出这是这是一个异步操作,并且由ObservableSubscribeOn实现。知道了原理我们来实现一下,修改一下代码 Observable.create(Ob...

2018-11-23 11:03:53 95

原创 RxJava入门实践(一)

         RxJava做为近年来最火的开源库之一真是让人又爱又恨,既让人有欣喜又让人抓狂。身边也有不少小伙伴说RxJava太好用了,也有人说RxJava太难用了。RxJava到底是什么呢?简单来说就两个字——异步!        这是RxJava在GitHub的自我介绍:RxJava是一个运行在JVM上的反应扩展库,一个基于事件可以用JAVA JVM的可观测序列组合库。很具体也很抽...

2018-11-08 21:13:11 159

原创 HendCoder自定义控件第一期案例代码实践

最近公司项目需要重构,也挺忙的,好久没有写文章了,也不知道写些什么,自己都是菜鸟一个也是边学边写。不多说了,前几天看到大神扔物线的一个开源项目(传送门),看了下感觉挺不错的,对自己也有不少提高,于是用心学了一下,顺便把他的案例(Github案例)给实现了一下大神对这块讲的很详细我就不赘述了,我主要把大神的案例写了下,然后写出来给大家参考,不多说,直接上图看效果如下图:画个圆:...

2018-09-07 15:27:46 171

原创 Android 仿京东淘宝筛选侧滑,两种实现方式

前两天看个朋友搞个用PopWindow搞了个筛选侧滑,看了下需求也不麻烦,刚好最近也有个商城项目前几天也学习了下Popwindow(以前侧滑都是用DrawerLayout实现的),就顺手写了下,分别用PopWindow和DrawerLayout实现了先说说DrawerLayout吧,这个是谷歌在V4包下增加的一个控件,出来也挺久了,使用起来也比较简单。。。。先看下效果图使用起来也不麻烦,主要是布局...

2018-04-27 11:30:11 6645

原创 Android顶部弹出提示的两种实现方式

先给大家上一张效果图:越来越多的APP提示越来越花哨,有中间的,有顶部的,有底部的,滑动滑出的,淡入淡出的,今天就先给大家做一个简单的顶部弹出提示效果其实这是一个很简单的功能,做起来也并不复杂,我们先看使用Toast如何实现第一种:Toast实现布局文件layout_toast:<?xml version="1.0" encoding="utf-8"?><LinearLayou...

2018-04-16 14:01:32 14978

原创 kotlin.NotImplementedError: An operation is not implemented: not implemented

在使用Kotlin开发APP时监听Edittext的addTextChangedListener事件时报kotlin.NotImplementedError: An operation is not implemented: not implemented 这个错误,究其原因是因为我们在生成代码时IDE会自动给添加这句话TODO("not implemented") //To change bod...

2018-04-10 11:41:35 482

原创 Android通知栏(Notification)介绍及使用

在使用手机时,我们常常会碰到各种通知,例如微信,头条,UC等,天天不厌其烦的给你各种推送,当然了我们今天不讲推送,我们讲讲通知栏的构建和使用,以及自定义通知栏的布局和使用方法构建一个通知栏一般分为这几个步骤:1.创建通知栏管理工具 2.构建通知栏构造器 3.给构造器设置参数 4.发送请求具体代码如下: /** * 创建通知栏管理工具 ...

2018-04-08 15:50:13 31392 5

原创 AndroidStudio 编译时出现Error:Execution failed for task ':app:mergeDebugResources'. >错误

今天在运行程序时突然报Error:Execution failed for task ':app:mergeDebugResources'.> Error: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:错误,而我几分钟前调试的时候是OK的,而这个错误出现的原因...

2018-03-27 11:52:04 13164 1

原创 EventBus3.0集成使用详解(下)

上一篇文章我们简单使用了EventBusEventBus3.0使用详解(上),今天这章我来说说EventBus的粘性事件使用方法,在写例子之前我们再次了解一下@Subscriber(),在上个例子中我们并没有添加任何参数,直接空值放入,这是因为在EventBus默认是POSTING线程传入,如果你要问POSTING是什么,那么现在就来告诉你在EventBus3.0中,有四种线程模型,分别是:POS...

2018-03-26 14:25:11 823

原创 EventBus3.0集成使用详解(上)

        在应用开发过程中少不了使用Intent,线程,广播传递数据,当应用包还比较小的时候我们并不会感觉这些方法会有多麻烦,但是当应用包越来越大,模块越来越多,功能越来越复杂,这用这些方法就会感觉越来越难受,甚至你自己都感觉写的想吐,而这时EventBus就是你最好的选择(其实我最开始就想代替跳转传值而已),Eventbus具有集成方便,简单易用,代码量少,耦合性低的优点,大大的方便了各个...

2018-03-22 17:10:34 360

原创 Android中重写Fragment构造函数出现异常

今天在编写程序时发现有几个Fragment界面是相同的,共用的同一个布局,只是在调用接口时参数不同,从而显示的数据不同,于是想将相同的Fragment抽离出来,共用一个Fragment,这样就简单完成了代码复用,减少了代码的冗余,于是兴冲冲的拿一个Fragment做实验,但是在写构造函数时出现了异常,如下图:打开more看了下,大概意思说的是每个fragment都应有一个空的构造函数,便于该fra...

2018-03-15 09:13:20 890

原创 Android兼容8.0后APP图标变为原生小机器人图标

从去年谷歌大会正式发布Android 8.0到现在已经差不多也有大半年时间了,越来越多的公司将适配8.0和全面屏提上日程,而上周谷歌又发布了Android9.0预览版去瞅瞅,随着小米,华为等厂商对系统的升级,进一步催促了APP适配8.0机器。众所周知,Android8.0对APPLogo做了一些更改,在8.0中开发者可以使用不同的应用图标,比如圆角矩形或者圆形图标,不过所有的图标需要保证是同一个形...

2018-03-12 11:16:01 13302 4

原创 使用BaseRecyclerViewAdapterHelper+RrecyclerView构建的多层购物车

一个简单的小多层购物车例子,主要使用的是BaseRecyclerViewAdapterHelper传送门,很实用的一个适配器框架,搭配RrecyclerView很赞哦,能少了不少代码, 而且监听之类的更加方便这个简单的购物车,我现在只做了计算金额,后续再更新demo下载地址:demoGitHub:点击打开链接

2018-02-05 11:49:17 1029

原创 推荐几个Android常用的开发工具和插件

常用工具:1.PostMan这个是我用的时间最长的一个工具,各种借口调试都可以使用,而且非常方便2. 谷歌插件-Insight.io我们在看GitHub文章和源码时感觉非常不方便,但是有了这个工具,你会发现看GitHub会是一种享受,还支持跳转,搜索哦3. 谷歌插件-掘金根据自己兴趣选择标签,定制页面和推送4.GitHub Desktop

2018-01-10 15:42:35 964

原创 使用Retrofit+RxJava搭建简单的MVP网络请求框架

首先感谢蛇发女妖,偶尔在简书翻到这篇文章,很多地方都是借鉴这位的思想 另外感谢Season_zlc,大神的水管图很传神,刚接触RxJava的同学可以看看,撸完差不多也可以跟我一样简单使用了老生常谈先介绍下MVC和MVP,先整张图 MVC:Android其实本身就是MVC模式,实现了视图于代码分离,视图是用XML画出来的,然后在Activity实现各种功能,作为一个开发者这是最简单的实现模式,除了

2017-12-26 15:09:50 363

原创 记个小问题:NestedScrollView+RecyclerView冲突,滑动黏连

因为首页改版,换成了CoordinatorLayout+AppBarLayout+NestedScrollView这样,在NestedScrollView嵌套了RecyclerView做完布局后,写了点假数据扔进去,发现在滑动时(NestedScrollView位置)有明显的黏连感,无法顺畅的向下滑动,因为知道NestedScrollView也有滑动效果,立马想的是滑动冲突问题,而谷歌也早给我们想好

2017-12-15 10:33:01 413

原创 Android数据库操作—— GreenDao让你的数据操作更简单

首先说下官网,官网对GreenDao的介绍是the best way to access sqlite(访问数据库的最好方式),诚如官网所言,GreenDao操作SqLite数据库十分方便,大多数情况下,仅仅只需一行简单代码就可完成增删改查等工作,而且这还是一个开源框架,完全免费再说说优点:1.读写速度快 2.消耗资源少

2017-12-06 17:29:30 459

原创 简单自定义Popwindow,仿支付宝微信密码输入弹出框

因APP增加了钱包功能,所以APP支付是迫在眉睫的事,市场上大多数的支付界面都是大同小异,因此写了下自定义PopupWindow,简单模仿下支付宝,本人也不常用PopupWindow,写的不好,希望大家海涵。废话不多说,先上效果图 布局直接上代码吧,也不麻烦<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="h

2017-11-21 10:15:12 803 1

原创 Tinker实践:一步步带你集成Tinker,让你的APP也用上热修复,告别重复性更新

热修复作为当下热门的技术,从15年至今Android开发领域里对热修复技术的讨论和分享越来越多,其中在业界内比较著名的有阿里巴巴的AndFix、Dexposed,腾讯QQ空间的超级补丁技术和微信的Tinker。今天主要说下Tinker,以及我在集成中踩得那些坑,算是做个笔记,以防遗忘。先来两个地址: Tinker官方地址 Tinker官方Github地址本人菜鸟一枚,什么原理啊,解析啊,如何解释

2017-11-08 16:06:17 607

原创 RecyclerView自带bug,切换数据出现IndexOutOfBoundsException

今天在APP在运行的时候,突然闪退了一下,查看日志看到了异常情况 看到java.lang.IndexOutOfBoundsException还以为是下标越界,检查了一遍代码,没发现什么不合理的地方,于是又重新运行了一遍,重新按刚才操作来了一遍,再次出现这个异常,百度一番(不谷歌的原因众所周知),才知道原来是RecyclerView自身的问题,谷歌一直没修复,既然它没改,那改的只有我们了,不能不

2017-11-06 11:25:10 2662

原创 多层嵌套Fragment获取父Activity(Fragment)控件及方法

先说说父Activity开局一张图 Fragment的生命周期大家都清楚,我就不一一赘述了,今天我们主要来说一下onAttach(),我们都知道onAttach()有两种重写方法,其中一种就是 @Override public void onAttach(Activity activity) { super.onAttach(activity);

2017-11-01 16:22:38 8647

Android 广播、服务、对话框直接交互demo

移动端定时访问服务器,获取到数据后通过广播把数据传递给广播接收器,然后弹出对话框

2019-04-03

Android 百度地图获取定位信息并实时传给后台

Android 百度地图定位信息实时向后台传输定位 简单案例

2019-03-29

Android组件化学习Demo

Android项目组件化学习demo,内容包含底层基础类模块,网络请求类模块,常用工具栏模块,多模块简单集成,内容简单,思想醇厚

2019-01-09

Retrofit2 Demo源码

Retrofit2.4网络请求框架,内容包括GET无参,GET有参,POST表单,POSTJSON请求,文件上传,文件下载等

2018-12-17

OkHttp使用案例

Android网络请求框架OkHttp使用案例Demo测试代码,没一个案例都单独测试,内容详细简单

2018-12-07

RxJavaDemo

RxJava实例代码,包括常用类型的传递,图片的传递,泛型传递,MAP和Flat Map转换传递等

2018-11-23

HenCoder案例实践

对扔物线大神的hencoder第一期自定义控件案例进行学习,将案例实现代码

2018-09-07

Android仿京东淘宝侧滑筛选

Android仿京东淘宝侧滑筛选控件,分别使用了Popwindow和DrawerLayout实现

2018-04-27

顶部弹出提示的两种实现方式

使用Toast和Popwindow分别实现了顶部弹出消息提示,一个简单的小demo

2018-04-17

通知栏(Notification)使用介绍及案例

通知栏(Notification)使用介绍及案例,写了三个小例子供大家参考

2018-04-08

EventBus3.0使用demo案例

EventBus使用详解,有几个小Demo分别使用了普通消息传递,粘性消息传递,代替广播消息传递

2018-03-26

仿淘宝购物车,多层订单

一个简单的多层购物车结构demo,主要使用了BaseRecyclerViewAdapterHelper和RecycleView,简单易懂,代码量少

2018-02-05

简单的MVP的网络请求框架(RxJava+Retrofit)

简单的MVP的网络请求框架(RxJava+Retrofit),代码很简单也很简洁,仅供学习使用

2017-12-26

GreenDao示例代码

针对Greendao做的一个小例子,代码简单,注释详细,适合刚接触greendao的朋友学习和使用

2017-12-06

简单仿支付宝Popwindo弹出框控件

自定义仿支付宝密码支付弹出框控件,注释详细,代码简单

2017-11-21

微信Tinker热修复Demo

基于微信Tinker,Android集成热修复Dmeo,代码量少,例子简单,一看就明白

2017-11-09

一个简单的Android验证码控件,大小写字母加数字,有噪点和划线,集成简单

一个简单的验证码工具,包括简单的大小写字母,数字,噪点,划线等,注释明确,代码简单,便于集成

2017-10-17

简单的Android验证码控件

一款简单的验证码控件,大小写字母加数字,有噪点和划线,代码简单明细,注释详细清楚,集成简单

2017-10-17

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除