Android填坑记
vchao_
怀揣好奇,梦想改变世界的菜鸟极客
展开
-
解析TextView,自由控制drawable大小
一个自定义View,扩展TextView的功能,使 drawable 可以自由控制大小。功能很简单,实现也不复杂,但是我们可以捎带着一窥 TextView 的一万多行源码原创 2020-05-10 22:45:43 · 2905 阅读 · 0 评论 -
学习笔记:制作自己的依赖库(Github+JitPack)
做安卓开发,免不了要使用第三方的依赖库。依赖库的使用大量减轻了我们的工作量。同样,我们也可以做一个自己的依赖库并且发布,供自己和他人使用。这里我们以 科技仪表盘 的项目来做一个自定义 View 的依赖库。原创 2020-04-24 00:06:43 · 1304 阅读 · 0 评论 -
【安卓】手撸一个带点儿科技感的仪表盘
本文运用自定义View的基础知识带着大家做一个仪表盘View,如果你想对这部分知识进行下复习和梳理,也可以跟着步骤来看下,文中内容若有疏漏,还望不吝赐教。原创 2020-03-03 07:31:05 · 2046 阅读 · 0 评论 -
【安卓】唠点儿你不一定知道的小知识
那么问题来了,这些知识你到底是知道还是不知道?原创 2020-02-23 09:21:11 · 1031 阅读 · 0 评论 -
安卓: WebView点击图片展示大图
原生APP固然高效,灵活度却有所欠缺。因此 App 的混合开发愈加盛行,而最简单的方式就包括采用 WebView 进行展示某些网页。WebView 和 JS 的交互必不可少。今天就来说一个常见的情景:点击 WebView 网页中的图片,放大进行展示。需求点击WebView网页中的图片,进行放大查看。分析首先明确的是:这个工作可以交给web前端工程师去做,网页自行处理点击放大查看的操作。...原创 2019-11-22 23:36:16 · 1212 阅读 · 0 评论 -
安卓小技巧:软件中显示版本打包时间
在项目的调试阶段,经常会被项目的版本搞的头昏脑涨。昨天一个版本,今天一个版本,明天又一个版本,多人长期测试的情况下,很容易混乱。本文分享一个小技巧,在软件中显示版本打包时间,权当抛转引玉,供大家开阔思路之用。static def getDebugTime() { String now = new Date().format("yyyy-MM-dd HH:mm") return "...原创 2019-10-19 23:43:59 · 1337 阅读 · 0 评论 -
安卓可上下滑动改变数值的折线图(基于hellochart)
接手的公司的一个项目,有一个需求是折线图可以通过上下滑动改变数值。原先的大佬自己从头写的,也能实现功能。大佬后来也把思路和代码分享出来了。大家有兴趣的可以看一下。手把手教你写一个可以上下滑动点改变值的安卓折线图因为后来需求有些变动,原来的代码改动起来略显吃力,于是自己又以hellocharts为基础重新封装了一个自定义VIew,以此来实现功能。思路和截图挖坑再补。……代码如下:publ...原创 2019-01-27 18:32:13 · 1606 阅读 · 1 评论 -
指纹模块开发-FPW(M)指纹系列产品
根据杭州蚁创科技有限公司《FPW(M)指纹系列产品开发手册》编写, 仅适用对应硬件,留作备忘。1. 添加权限:<uses-feature android:name="android.hardware.usb.host" android:required="true" /><uses-permission android:name="andro原创 2019-01-18 18:56:44 · 2004 阅读 · 0 评论 -
Android获取定位信息LacCi值
定义:LAC:location area code 位置区码 (移动通信系统中),是为寻呼而设置的一个区域,覆盖一片地理区域,初期一般按行政区域划分(一个县或一个区),现在很灵活了,按寻呼量划分。当一个LAC下的寻呼量达到一个预警门限,就必须拆分。 为了确定移动台的位置,每个GSMPLMN的覆盖区都被划分成许多位置区,位置区码(LAC)则用于标识不同的位置区。一个位置区可以包含一个或多个小区移...原创 2019-01-06 21:14:52 · 2967 阅读 · 1 评论 -
安卓:一个项目的多种打包方式
应用场景:工作中经常会遇到一个项目需要多种打包的情况。只改几个参数,或者替换几个图片,就需要重新打一个安装包。如果只是一处两处,一次两次还好,如果频繁有这样的需求,想想就脑壳子疼……为了解决这个问题, 采用gradle自带的 productFlavors 工具来实现多渠道,多app打包方式进行。productFlavors是什么?直译过来是产品特色,作用也差不多,用同一套代码生成不同的特...原创 2018-12-27 20:23:16 · 1591 阅读 · 0 评论 -
详细讲解安卓截屏监听操作
项目中有时会遇到监听用户截屏操作的需求,应用场景也比较丰富。eg. 1: 某个隐私页面禁止截屏,当发现用户截屏后,删除该截屏文件;eg. 2: 当用户截屏时,可能是需要进行分享,意见反馈等操作,此时进行弹窗提示,方便用户操作(支付宝就有类似功能)。原创 2018-05-07 18:18:50 · 4381 阅读 · 2 评论 -
Android解决卡顿,从避免Overdraw开始
什么是Overdraw?Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这个操作耗时超过16.67ms时,就会出现掉帧现象,也就是我们所说的卡顿,所以对重叠不可见元素的重复绘制会产生额外的开销,需要尽量减少Overd...转载 2018-03-27 21:26:45 · 7835 阅读 · 0 评论 -
解决ScrollView嵌套RecyclerView的显示及滑动问题
转自从: https://segmentfault.com/a/1190000011553735项目中时常需要实现在ScrollView中嵌入一个或多个RecyclerView。这一做法通常会导致如下几个问题页面滑动卡顿ScrollView高度显示不正常RecyclerView内容显示不全本文将利用多种方式分别解决上述问题滑动卡顿解决方案若只存在滑动卡顿这一问题,可...转载 2018-03-14 17:04:58 · 470 阅读 · 0 评论 -
关于Activity跳转动画大汇总
转载自:https://www.jianshu.com/p/b2f2961db1d5 目录介绍1.业务需求:Activity正反两面,沿中心X,Y轴旋转180度 1.0 具体业务需求1.1 用3D效果做翻转动画1.2 用2D效果做翻转动画【实际是缩小-放大,看上去是翻转】2.业务分析:两个界面放在同一个布局中 2.1 布局设计思路分析2.2 代码展示3.具体动画逻辑做法...转载 2018-03-23 17:22:56 · 537 阅读 · 0 评论 -
高效开发:当Android中武装上Lambda表达式
参考:http://blog.oneapm.com/apm-tech/226.html https://www.cnblogs.com/franson-2016/p/5593080.html简介 虽然看着很先进,其实Lambda表达式的本质只是一个”语法糖“,由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。Lambda表达式是Java SE 8中一...转载 2018-03-13 21:06:35 · 706 阅读 · 0 评论 -
Android自定义View-倒计时控件(可自动继续,矫正时间)
项目中需要用到倒计时View,因为需求需要,所以不能只依靠本地计时。还需要网络请求数据之后,矫正时间。控件继承自AppCompatTextView, 增加了设置初始时间,开始计时,更新计时,停止计时,设置字体若干方法。完整代码如下:public class CountdownTextView extends android.support.v7.widget.AppCompatTextV...原创 2019-02-18 15:59:30 · 2278 阅读 · 0 评论 -
纳尼?Collections对时间戳排序出错了??
今天突然发现项目中的一个列表排序出现了错乱,顿时很慌张,原来测试过的啊,没问题的呀,这是怎么回事,赶紧定位问题,现象如下:1-9条数据排序正常,10条以后数据排序也对。但是这两块顺序不对。正常应该先展示10条以后的数据,最后再展示1-9条数据。(后来得知,这个现象属于偶然~~和数据有关系)列表中部分有序,但是整体排序不对……原创 2019-02-28 10:06:24 · 1590 阅读 · 7 评论 -
【项目推荐】一起来看个逼格儿很高的个人简历项目
马上就要进入金三银四的招聘季了,虽说互联网寒冬很多公司都缩减了招聘规模,但是机会还是有的,提前预祝诸位想要面试的伙伴们面试成功,升值加薪!今天就给大家推荐一个简历项目,也希望大家能从这个项目中能学习到些东西。因为我也是新接触,理解错误的地方还望指出。项目简介项目名称:Funday – 个人简历模板作者:xiaodan (码云)项目地址: https://gitee.com/xiao...原创 2019-02-24 19:09:05 · 6658 阅读 · 1 评论 -
APP内存优化:使用LeakCanary减少内存泄露
转载自:https://www.jianshu.com/p/70b8c87ea877一、简介使用MAT来分析内存问题,有一些门槛,会有一些难度,并且效率也不是很高,对于一个内存泄漏问题,可能要进行多次排查和对比才能找到问题原因。 为了能够简单迅速的发现内存泄漏,Square公司基于MAT开源了LeakCanary二、使用在app build.gradle 中加入引用:dependenci...原创 2019-09-09 16:21:37 · 597 阅读 · 0 评论 -
谈谈安卓中Context的理解[附思维导图]
思维导图是个好东西,可以把知识串在一张图上,更便于理解记忆。概述Context是一个抽象基类。在翻译为上下文,也可以理解为环境,提供一些程序的运行环境基础信息子类关系封装类ContextWrapperContextThemeWrapper(带主题的封装类)ActivityServiceApplication实现类ContextImpl内存泄露问题静态资源导致的...原创 2019-08-06 22:59:34 · 469 阅读 · 0 评论 -
安卓的双屏异显
参考文章:布列瑟农的秋天 https://blog.csdn.net/wlwl0071986/article/details/48542923后时代的觉悟 https://blog.csdn.net/liqianwei1230/article/details/78606935明朗晨光 Android | 说说Presentation https://blog.csdn...原创 2019-07-04 23:10:46 · 4906 阅读 · 1 评论 -
安卓扫码枪开发,拦截扫码事件
需求普通的手机开发,可以做一个二维码扫码的页面,用zxing一类的可以轻松实现,但是,如果是大型的安卓系统的终端机的话,摄像头不方便使用。可以依靠扫码枪来实现类似的效果。分析大型安卓设备与安卓手机的开发区别还是比较大的,尤其是扫码枪部分,有以下特点。例如:终端机的开发中,经常是Activity 数量比较少,Fragment比较多。扫码枪需要全局响应。并不只局限于某一个Fragment。...原创 2019-06-29 15:03:58 · 7385 阅读 · 4 评论 -
SVG - 在Android中使用矢量图全攻略
概念什么是矢量图,SVGSVG全称:可伸缩矢量图形 (Scalable Vector Graphics)SVG 用来定义用于网络的基于矢量的图形SVG 使用 XML 格式定义图形SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失SVG 是万维网(W3C)联盟的标准SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体与位图(Bitmap)相对,SVG不会像位...原创 2019-07-02 22:20:07 · 7168 阅读 · 1 评论 -
给APP上份保险:安卓的全局异常捕获
稳定性测试是保障客户端稳定性的一种手段,致力于提前发现问题,收集更多异常信息,复现线上闪退。当Android客户端发生闪退时,是如何捕获到闪退信息的呢?首先,需要了解一下Java中的异常.Java的异常Java语言在设计之初就提供了相对完美的异常处理机制,所有的异常类是从java.lang,Exception类继承的子类,Exception类是Throwable类的子类,除了Exception,T...原创 2019-06-15 23:40:58 · 614 阅读 · 0 评论 -
安卓导出Excel,txt文件工具类
导出工具类。使用方法 ExportUtil.writeExcel(DataExportActivity.this, actionLogModels, "excel");/** * 导出工具类 */public class ExportUtil { // 内存地址 public static String root = Environment.getExternalSt...原创 2019-06-08 21:37:01 · 1243 阅读 · 0 评论 -
记一次适配bug解决过程,权用作经验教训分享
代码bug原因关联很多,不能死盯一处,处理问题的方向错了,怎么解决也无济于事。血泪教训……原创 2019-04-29 18:02:45 · 645 阅读 · 0 评论 -
视频播放库Vitamio的使用以及功能扩展
Vitamio 能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐,到目前,全球已经有超过 10,000 种应用在使用 V...原创 2019-04-05 22:18:23 · 1134 阅读 · 0 评论 -
安卓:从网页唤醒APP
从网页打开APP,如果没有安装就进行下载。安卓AndroidMainfext.xml在要启动的activity下面添加一个intent-filter。 <intent-filter> <action android:name="android.intent.action.VIEW" /> ...原创 2018-03-19 15:26:00 · 6525 阅读 · 0 评论 -
SurfaceView之镜中初窥
1.什么是SurfaceView?Surface意为表层、表面,顾名思义SurfaceView就是指一个在表层的View对象。为什么说是在表层呢,这是因为它有点特殊跟其他View不一样,其他View是绘制在“表层”的上面,而它就是充当“表层”本身。SDK的文档 说到:SurfaceView就是在窗口上挖一个洞,它就是显示在这个洞里,其他的View是显示在窗口上,所以View可以显式在 Surf...转载 2018-03-05 13:25:07 · 1214 阅读 · 0 评论 -
动态更换应用图标:activity-alias详解及应用
动态更换图标首先先解决下实际问题。动态更换图标。android可以根据activity-alias来设置桌面可以存在多个icon,那直接通过设置某个activity-alias显示其他隐藏即可实现。下面上代码在xml添加多个activity-alias、删除mainActivity标签的&amp;amp;amp;lt;activity-alias android:name=&amp;amp;quot;.ico...原创 2018-02-25 19:24:38 · 3111 阅读 · 3 评论 -
Bmob后端云的集成以及需要注意的坑
自己一个人去完成一个小项目。对于安卓开发者来说,后台程序就成了个不大不小的问题。自己写的话,无疑耗时耗力,效果还不好。如果你也面临这个,不妨来了解下Bmob后端云。Bmob 提供了实时数据与文件存储功能,轻松实现应用“云与端”的数据连通。数据存储除了常规应用文本信息的存储,还可以存储图片、视频、音频、地理位置等信息。 (我不是打广告的~~)原创 2017-08-23 17:49:39 · 9555 阅读 · 0 评论 -
仿微信图片选择器的添加使用
今天做的部分涉及到了图片选择库。调用手机图册或者相机,然后选择图片上传。思来想去还是决定使用廖子尧大神的ImagePicker。本文简单写下使用的方法。想看原文的戳这里==>ImagePicker原创 2017-08-22 12:59:29 · 689 阅读 · 0 评论 -
Bmob后端云上传多张图片
不得不承认,用着Bmob提供的后端云的感觉倍儿爽,省了服务器不说,安卓端的代码也简化了不少,联网异步什么的都不用管了。不过,今天在上传图片期间遇到一些坑,查了文档也没找到个之乎所以然,在此做一下记录。权当备忘。目的我想做的是类似于朋友圈的那种,一个用户发表一个动态,动态里面包含若干文字以及若干图片。今天仅就这几张图片的上传来说说。官方说法恩。官方文档的说法:上传一条多个文件的数据往Music表中插原创 2017-08-24 21:29:59 · 5764 阅读 · 3 评论 -
安卓军火库:通用聊天页面
在平常APP 开发中,免不了要用到聊天页面。大量重复的工作着实让人有些心累,今天就将聊天页面代码总结一下,日后在使用的时候直接拿来复制就好了。原创 2017-08-12 11:35:24 · 488 阅读 · 0 评论 -
android军火库:闪屏页面SplashActivity
慢慢熟悉了Android的开发流程之后,就会发现很多功能或者页面都是相似或者类似的,只是组合的方式不太一样。每次都去写一遍,无疑会浪费大量的时间与精力。如果能像搭积木一样,那无疑会省时省力,简单暴力。本篇文章就从最最常见的几乎每个工程都会用到的闪屏界面开始入手。原创 2017-06-26 23:34:29 · 3054 阅读 · 0 评论 -
Android:答题APP的设计与实现(mysql+jsp+Android)
还没有整理完,待续…… 学校开了Android课,最后让交一个大作业。正好拿来练练手,记录下思路。也希望能给有需要的朋友们一些帮助。恩,纯小白教程,大神们可以绕路了。 作业的题目是这样的: 考试APP系统: 1)要求有用户登陆功能:从远程服务器进行登陆验证。 2)要有考试测试界面,主要是选择、判断、简答题目测试。 3)要有统计...原创 2017-06-13 00:11:07 · 39810 阅读 · 312 评论 -
关于gradle的那些闲碎琐事
今天上课的时候不知道怎么回事,gradle全都离奇消失了,而且教室的网也真是奇差无比,无可奈何,干看了一天老师敲代码,还打了好几次瞌睡,难受死了……回来之后就下定决心,要把gradle的事情好好算算……啥是gradle?Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML原创 2017-06-03 21:43:32 · 304 阅读 · 0 评论 -
Kotlin是个什么东东?
仿佛是一夜之间,突然就好多人都在讨论Kotlin,一下子就把我弄懵逼了,这是个什么东东??然后各种百度,看各种大佬的文章,最后整理成了自己的理解。这篇文章就来简单讲一下,不对的地方,欢迎大家指出来。原创 2017-05-21 19:53:04 · 3227 阅读 · 0 评论 -
Android代码规范化:抽取Activity基类
今天就说下Android代码规范化的内容,抽取Activity基类。好处呢?第一,可以规范代码,增强代码的可读性。第二就是减少代码量,让逻辑更清楚,第三,定义共性的方法和变量,避免代码重复。原创 2017-05-14 23:07:38 · 1643 阅读 · 0 评论 -
Android 开源日志库 Logger 使用教程
本文为 like_program 原创。原文地址为: http://blog.csdn.net/like_program/article/details/529865531.Logger 是什么在我们日常的开发中,肯定是少不了要和 Log 打交道,回想一下我们是怎么使用 Log 的:先定义一个静态常量 TAG,TAG 的值通常是当前类的类名,然后在需要打印 Log 的地方,调用转载 2017-05-11 21:54:53 · 470 阅读 · 0 评论