Android
文章平均质量分 53
AnalyzeSystem
Analyze System
展开
-
CoordinatorLayout实现嵌套滑动吸顶效果
需求:嵌套滑动,顶部Banner能滑出屏幕,banner下方的TabLayout吸附顶部不能滑出屏幕,支持下拉刷新上拉加载更多,效果如下图实现方案早期有hongyang提供的android-stickynavlayout库https://codechina.csdn.net/mirrors/hongyangandroid/android-stickynavlayout?utm_source=csdn_github_accelerator定制UI需求可能需要自行修改部分源码,博主用过之后感觉还是原创 2021-07-05 16:33:39 · 1305 阅读 · 0 评论 -
仿淘宝双色球走势图自定义控件
博主爱玩彩票,今早刚好看到淘宝手机端彩票走势图表效果非常nice,于是乎code一上午,大致效果还是出来了,碍于数据就没有细调UI,效果图如下实现思路也比较简单:几个recyclerView+手势分发,布局如下整体布局是一个FrameLayout+上面的布局+自定义手势分发控件:LotteryTouchViewadapter需要实现item不同的背景,可以通过layoutPosition解决 var drawableResId = 0原创 2021-06-25 14:09:50 · 732 阅读 · 1 评论 -
后台仿京东商城接口设计缺陷吐槽篇
办公室刚battle完,忍不住来吐槽一下,先上图,再说需求和接口设计个人理解的排序:不管是综合排序还是销量排序亦或者是价格升序降序,请求的参数类型应该是下图模式class SortType { companion object{ val TYPE_PRICE_UP = 1 val TYPE_PRICE_DOWN = 2 val TYPE_SALE_COUNT = 3 val TYPE_SYNTHESIZE = 4原创 2021-06-24 15:28:31 · 482 阅读 · 3 评论 -
Android内存泄漏分析案例1
目前很多app都是底部导航+fragment碎片,不可避免的会用ArrayList装fragment,我目前手里的一个项目就遇到这么一个问题Tip: ReportFragment 项目中从未使用过,经过工程全局搜索发现它来自这里BaseActivity 》AppCompatActivity》FragmentActivity》ComponentActivity》ReportFragment.injectIfNeededIn(this);》fragmentManager>mListFragmen原创 2021-06-11 14:20:01 · 351 阅读 · 0 评论 -
Android模块化开发流程梳理
android技术发展日新月异,我这个乡下来的有点懵了,leader要求项目模块化开发,项目组不同的人负责不同的模块,网上检索出来的结果都是app+base+N个module+路由,博主摸索几千个日日夜夜总算是完成任务,在这里分享记录一下相关的知识点。先创建主项目,项目内创建common基础开发库,再根据业务逻辑创建不同模块依赖common,主项目依赖module如下图我们首先配置Project下的build.gradle文件,把版本号统写在一个类,这样方便项目构建版本管理apply plugi原创 2021-06-08 14:54:28 · 630 阅读 · 3 评论 -
Android 仿京东商城购物车及源码
产品需求和京东商城购物车类似,需求如下:店铺不能跨店结算,仅支持单店结算,单店铺下商品侧滑删除商品,如果单店铺下商品全部删除,需要删除该店铺,店铺的单个商铺库存不足或者商品下架状态不支持选择,商品的数量加减和删除商品都要求调用接口加减删除,大致效果如下很多界面操作都涉及到刷新UI,这些操作呢我又不想把他们累赘的放在Adapter或者Activity里操作,我的思路是把所有功能定义到interface,通过Imp具体操作Bean,如果需要刷新notifyRefrsh就好。首先定义好店铺ShopB原创 2021-06-02 16:43:03 · 1428 阅读 · 0 评论 -
android 表单信息提交与设计之美
需求如下:一个界面多个fragment表单信息,每个fragment表单信息检查输入信息符合规则才能到下一个fragment表单,在最后一个表单提交所有信息到服务器,系统返回和自定义返回按钮依次回退fragment后再退出activity思索之余定下UML图如下编码的时候开始思考如何让代码写的更优雅一些,让代码更具有可读性?首先我们要确定我们必须要做的事:检查输入内容是否符合规则和获取表单信息用于请求提交到服务器切换fragment具体实现放在BaseActivity,BaseFragment原创 2021-05-14 18:25:16 · 586 阅读 · 2 评论 -
BottomSheetDialogFragment实现地图导航弹窗效果
需求如下:从服务器查询列表在地图上弹窗显示,首次只能显示两条Item,下滑隐藏,上滑动铺满位于titleBar下,点击标记物显示详情,详情内可以点击查看列表看效果图首先想到的是NetScrollView CoordinatorLayout Behavior,当然还有BottomSheet系列,个人比较倾向于BottomSheetDialogFragment,不用在laout 绑定behavior操作,就像一般的Fragment dialog使用一样即可相关BottomSheetDialogFrag原创 2021-05-13 12:41:31 · 594 阅读 · 3 评论 -
Android自定义弧型View
好久没动手玩View自定义,有点生疏了。效果如下思路很简单,onDraw绘制弧线、绘制Textcanvas.drawArc(oval, startAngle, sweepAngle, false, paint); canvas.drawText(integralValue, rectF.centerX(), baseline, textPaint);draw 动画效果实现:invalidatecanvas.drawArc(oval, startAngle, i, false, paint原创 2021-05-07 17:32:35 · 850 阅读 · 10 评论 -
使用Arouter遇到unresolved-reference的坑
这里仅做一个记录,我的代码确定path xml相关代码毫无问题,但就是找不到layout文件,kotlin代码+Arouter使用,我也不清楚问题出在哪里,调试半个小时毫无进展最后结局办法如下,重启就自己好了,有句nmngb不知当不当讲我也不知道是kotlin问题还是Arouter问题,咱也不敢说,也不敢问!...原创 2021-04-22 21:08:29 · 252 阅读 · 0 评论 -
Mac The emulator process for AVD Pixel_x_API_xx was killed/Reason: image not found打不开模拟器问题以及解决办法
怎么说了,网上查了一堆资料没一个正真管用,下面先来看问题The emulator process for AVD Pixel_x_API_xx was killed遇到这个问题再通过终端命令行启动模拟器爆一下错误dyld: Library not loaded: /Library/Frameworks/XXX.framework/Reason: image not found看到这里基本可以确定image问题,网上说的什么修改成image86_64或者修改graphics 属性值,这些都是扯原创 2021-04-13 21:32:19 · 3242 阅读 · 1 评论 -
Idea-ChainSelector
临近年终了,来了新需求,博主无奈啊,花了点时间搞出了下图效果思路分析上图效果大致分为两部分组成:横向ScrollView+ListView.由于本人对于开源项目了解比较多,滑动悬停效果的PinnedSectionListView(任玉刚)有这个开源库可以实现,可以down 下来加以修改源码。scrollview部分只能自己写了,自定义一个容器inflater下面布局<LinearLayout xml原创 2017-01-20 17:13:36 · 645 阅读 · 0 评论 -
Android 动画源码学习篇(一)
概述Android提供了各种功能强大的应用动画的用户界面元素和绘制自定义的二维和三维图形的应用。我们可以大致按照下面分类来学习理解Animation 安卓框架提供了两个动画系统:属性动画和视图动画。属性动画在一般情况下,是首选的方法来使用,因为它更灵活,并提供更多的功能。除了这两中动画,你可以使用Drawable动画,它允许你加载drawable资源显示一帧接一个。(5.0以后有场景动画,有闲时原创 2016-12-20 15:14:33 · 1417 阅读 · 0 评论 -
Android-GridLibrary
本篇主要是关于ViewPager+GridView实现下图效果的探索,在不少App的主页面都有下图效果(当然下图减少了indicator的实现,实现起来比较简单就忽略了,以后开发遇到再说吧)怎么实现上图效果呢?ViewPager的每个Item都为GridView,这样做只需要改变Adapter就可以达到目的了首先我需要定义一个接口/** * Created by idea on 2016/12/原创 2016-12-30 14:50:05 · 827 阅读 · 0 评论 -
Retrofit & OkHttp系列(一)
Retrofit2.0+Okhttp3.0基本使用翻译 2016-11-28 15:55:04 · 2539 阅读 · 1 评论 -
走进爱哥的仓库:DatePicker
DatePicker前传,不知什么时候,AigeStudio侵入了我们这群android开发者的内心深处,有着一群不知姓什名谁的人xx(不想用小明指代,比较喜欢xx),不断地发出歇斯底里的叫声:然而,在某天某时某刻,XX遇到需求如下: 商户可以通过app手动选择指定时间段/一些天数进行统计分析。这一刻来临了,XX人蒙了,找不到头绪了,开始进各个群展开撒网战术,可怜兮兮的等待着群友的回复,总有那么..原创 2016-06-13 15:26:57 · 6854 阅读 · 22 评论 -
Android开发之付款码
对于刚完成的付款码模块代码做一个纪录,以备后用。以前做预支付通过Netty框架搭建通信,本次通过轮询任务完成界面刷新。效果图知识点带头像二维码生成轮询任务场景动画旋转动画生成二维码依赖zxing核心库compile 'com.google.zxing:core:3.2.1'网上copy了一份生成带头像二维码的Util类import android.graphics.Bitmap;imp原创 2017-08-03 11:14:50 · 2757 阅读 · 3 评论 -
MPAndroidChart系列源码解读(五)
本篇主要是LineChart实战相关知识和简单的源码剖析,相关源码没有,自己动手实践学习才是最有效的方法。LineChart Simple运行效果图个人感官觉得某些属性设置后太难看了并没有添加,so效果图上没有显示,如果你想测试这些属性自行参考下面的api介绍一些调用方法说明设置图标数据内容视图的背景颜色(默认RGB(240,240,240))mChart.setDrawGridBackground原创 2016-08-24 18:21:44 · 2532 阅读 · 0 评论 -
Android Studio开发脱离鼠标之路
在使用Android Studio开发,个人期望尽量脱离鼠标使用键盘快捷键操作,这样看起来貌似很酷的样子。本篇blog主要是一个引导,更多的是使用者在使用android studio的过程中,逐渐熟练掌握快捷键,脱离鼠标操作。首先介绍Window下面的几个快捷键window+R>cmd进入命令行alt+tab/方向箭头 切换窗口视图alt+f4关闭当前窗口window+E打开我的电脑1.打开And原创 2016-08-25 11:31:12 · 2192 阅读 · 0 评论 -
MPAndroidChart系列源码解读(四)
MPAndroidChart库源码浅析,逐一搞懂实现原理,把握脉络,随意定制开发这类图表控件。原创 2016-08-12 10:13:50 · 1175 阅读 · 0 评论 -
MPAndroidChart系列源码解读(三)
MPAndroidChart库源码浅析,逐一搞懂实现原理,把握脉络,随意定制开发这类图表控件。原创 2016-08-12 10:10:42 · 1869 阅读 · 0 评论 -
MPAndroidChart系列源码解读(二)
MPAndroidChart库源码浅析,逐一搞懂实现原理,把握脉络,随意定制开发这类图表控件。原创 2016-08-12 10:08:54 · 2764 阅读 · 0 评论 -
MPAndroidChart系列源码解读(一)
MPAndroidChart库源码浅析,逐一搞懂实现原理,把握脉络,随意定制开发这类图表控件。原创 2016-08-12 10:06:57 · 3975 阅读 · 1 评论 -
Git学习篇(一)
git相关blog都是一些从极客学院和一些blog上面学习到的知识,经过总结提炼而写,以作记录分享,本篇主要是git本地操作相关知识。1. git简介 Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等原创 2016-08-22 15:53:21 · 912 阅读 · 0 评论 -
Android-Bootstrap
开源项目名称: Android-Bootstrap 开源项目地址:https://github.com/Bearded-Hen/Android-Bootstrap效果图Android-Bootstrap库提供了一些自定义视图样式根据Twitter引导规范。这可以让你花更多的时间发展而不是试图得到一个一致的主题在你的应用程序,特别是如果你已经熟悉引导框架。添加以下依赖build.gradle:dep原创 2016-08-22 10:43:03 · 5684 阅读 · 0 评论 -
Maven基础与私服搭建
Blog诞生记Android studio构建项目有时候build.gradld构建缓慢,严重影响了开发心情,这仅是次要因素,最重要的是leader为了考虑团队发展,建议搭建Maven私服,把项目模块化,按照module各自维护,把module push到maven私服,后续开发将依赖搭建的maven私服来开发,服从leader要求,开始了maven学习之路,先了解了maven基础知识,再搭建mav原创 2016-08-18 17:03:20 · 3058 阅读 · 1 评论 -
Android开发之design库学习
design库学习原创 2016-08-16 15:54:10 · 3991 阅读 · 0 评论 -
Android-NDK开发(一)
最近在学习NDK相关知识,边学边记录以备后用NDK开发环境搭建Android Studio下NDK开发环境搭建不用像Eclipse下那么复杂,首先是NDK安装 安装完成后会在SDK对应目录下出现配置环境变量到path 新建 NDK_ROOT,如:D:\Android\sdk1\ndk-bundle 在path中增加%NDK_ROOT%NDK开发之FoodManager先新建一个项目原创 2017-09-18 14:59:19 · 683 阅读 · 0 评论 -
Android开发之视频监控区域报警设定
最近接到一个来自产品的需求如下:用手在视频画框内画矩形框,矩形框内有物体移动将进行报警,最多三个区域 刚接到需求脑海瞬间行成了一个解决方案,这得益于我之前对github开源项目的“见多识广”!有事没事多看看一些优秀的开源项目还是很有用的。(每次只能选一个区域上传到服务器,根据次数控制是否支持再次选取)首先呢感谢开源项目:https://github.com/edmodo/cropper我需要如原创 2017-09-20 15:55:27 · 1725 阅读 · 0 评论 -
设计模式:命令模式
不再过多阐述,简单描述以作记录发送不同的命令,执行不同的任务,比如上例图示:登录界面有两个功能登录注册,点击不同按钮发出不同指令,做出不同响应,一个去登录一个区切换到注册界面。如果你的应用这里采用了命令模式你会发现类增多,有强迫症的我是无法接受这件事的,即便能有效地降低耦合性(降低耦合的方式不仅这一种,用不用命令模式具体问题具体分析,个人觉得小项目还是算了吧)原创 2016-08-09 09:37:36 · 492 阅读 · 0 评论 -
设计模式:观察者
我们先来看一则小故事: 皇帝的小舅子贪墨银子被上奏折了,皇帝不知该如何处理是好,于是乎朝会询问众臣意见,然而朝下臣子分为了三派,丞相、军机处、皇帝心腹。丞相派和军机处派的人都看着他们leader,leader都在道“臣惶恐”,一群手下也都跟着惶恐了,唯独皇帝老儿的心腹,察言观色,揣摩帝心,谏言圣上宽大处理…这一则小故事可看出观察者模式在古时候都开始盛行了,32个666.. 废话不多说,还是接着原创 2016-08-09 10:10:11 · 555 阅读 · 0 评论 -
重构改善既有代码的设计(一)
买了一本《重构改善既有代码的设计》,感觉味道不错,逗比来晒晒。初品重构实例,就遇到两个没用过的类Vector、Enumeration。在这里做个知识的补充,Vector和ArrayList都是继承自AbstractList,ArrayList会比Vector快,他是非同步的,如果设计涉及到多线程安全,还是用Vector比较好一些 。Vector的相关使用方法参照API调用即可,下面来看Vect原创 2015-12-03 12:01:54 · 1344 阅读 · 0 评论 -
跟着老罗学Android(一)
今天原本计划本月深入理解IPC这块的知识体系,但是检索资料发现老罗对IPC的理解比较透彻,但是我有点看不懂了,左思右想后,是时候深入理解系统源码了,不能在荒废时间了,于是下定决心好好学习,对照老罗(罗升阳)博客挨着看,并以blog的形式形成笔记,本篇主要是VMware安装和Ubuntu等相关系统安装,编译Android源码。打算把Mac和Linux都安装上,方便日后学习ios和Linux相原创 2016-06-03 09:44:54 · 1381 阅读 · 0 评论 -
Android开发之卡片叠层实现原理解析
转载请标明出处: https://blog.csdn.net/AnalyzeSystem/article/details/80078954 本文出自AnalyzeSystem的博客本篇博客只为卡片叠层相关开源库系列学习理解分析,为可能存在的类似需求定制自定义控件做一个技术累计分享。InfiniteCycleViewPager系统自带了横向Viewp...原创 2018-05-02 15:15:03 · 3712 阅读 · 0 评论 -
华为推送的文档就是垃圾垃圾垃圾!
华为手机加入进程组机制,后台干掉应用后进程也随之被干掉,这对推送和常驻进程相关方面开发有很大影响,为了解决这一问题使用华为推送,华为推送进程就是常驻,这样我们可以保证推送送达率以及搞点小动作:进程保活。在接入华为推送请不要看那垃圾文档,有问题参考简书相关博客!直接记录两个重要的坑点① onEvent函数要回调,需要服务器必须添加customize字段② 通知栏每次点击都会打开应用启...原创 2018-04-18 18:06:16 · 2296 阅读 · 7 评论 -
Android开发之头像智能裁剪
本篇主要是记录头像智能裁剪,如果图片含有人头像就智能提取头像,没有就按照默认scaleType裁剪。圆角头像采用 circleimageview 开源库 compile ‘de.hdodenhof:circleimageview:2.1.0’网络图片加载这里采用 Glide compile ‘com.github.bumptech.glide:glide:3.7.0’...原创 2018-04-17 10:18:09 · 970 阅读 · 0 评论 -
Android开发之Zip下载解压
本篇博客为需求而发烧,若有雷同需求code拿走不谢。需求如下:点击Item,从服务器下载zip包到本地文件夹并解压,解压后的图片文件全部查询出来,用于界面预览 没有强制每次都下载zip包保持最新,如果有需要FileDownload有函数支持,亦可以自行添加解压后自动删除zip包流程:下载zip包解压zip包查询指定文件格式的文件路径集合(.jpg为例)文件下载...原创 2018-03-27 09:59:28 · 4750 阅读 · 0 评论 -
Android开发之PCM音频采集
通过ijkplayer播放视频,需求:移动端实现实时对讲。即pcm音频录制实时推送到设备端,本篇主要记录pcm音频采集 为保证语音连续性,bufferSize 1m在网不好的情况下可能出现语音时断时续,需要调小bufferSize 到最合适的值import android.media.AudioFormat;import android.media.AudioRecord;i...原创 2018-03-23 10:53:13 · 3730 阅读 · 0 评论 -
Android开发之仿淘宝商品详情页
看到有人在问如何实现淘宝商品详情页效果,手痒了就撸了一个,献上效果图 大致梳理一下思路,这里不提供源码状态栏透明使用开源库StatusBarCompat,为了兼容手机4.4dependencies { compile ('com.github.niorgai:StatusBarCompat:2.1.4', { exclude group: 'c...原创 2018-03-05 09:58:46 · 14826 阅读 · 26 评论 -
Android开发之ItemTouchHelper解析
转载请标明出处: https://blog.csdn.net/AnalyzeSystem/article/details/80165740 本文出自AnalyzeSystem的博客撸这篇博客只是因为下篇博客卡片分析开源库所需,无他为学习尔RecyclerView的Item可上线左右拖拽,实现起来也比较简单,这里需要用到ItemTouchHelper.Callb...原创 2018-05-02 14:51:19 · 1619 阅读 · 0 评论