目录正文TrafficStats简介实现获取网速实时网速正文最近接到个需求,需要计算WebView加载网页时的网速。查询了一下,Android没有提供直接获取网速的Api,但是提供了获取流量的类TrafficStats。本文介绍如何使用Trafficstats来实现获取网速功能。TrafficStats简介TrafficStats提供了一些获取设备从本次开机 ......
300
0
0
2023-06-24
目录前言1、测量与图片的绘制2、事件的交互与计算3. 回调处理与自定义属性抽取后记前言在前面的学习中,我们基本了解了一些 Canvas 的绘制,那么这一章我们一起复习一下图片的绘制几种方式,和事件的简单交互方式。我们从易到难,作为基础的进阶控件,我们从最简单的交互开始,那就自定义一个星星评分的控件吧。一个 App 必不可少的评论系统打分的控件,可以展示评分, ......
227
0
0
2023-06-24
目录前言1、绘制静态的图形2、让两边的限制圆动起来3、动态滑动并计算当前的区间值4、计算当前值与回调处理5、实时文本显示与后续的扩展后记前言之前我们的复习中,我们已经对原生 Canvas 的绘制有了详细的了解,我们对事件的处理也有了简单的了解,这一期我们就对绘制与事件的处理做更进一步的实现。如图,我们需要做这么一个区间的选择控件,此控件也是我们常用的控件,在 ......
231
0
0
2023-06-24
目录简介项目结构代码前端后端简介我们在前面的Android教程中已经提到过这么一件事:Android在启动后会有一个主线程。它不允许任何子线程去改变主UI线程里的内容。这么做是为了妨止,万一有一个带有大事务的线程导致了渲染组件时间过长最终导致Android UI出现“闪退”、“崩溃”的保护机制。而实际我们在Android操作里的确是会有一些“耗时”的事情而采 ......
242
0
0
2023-06-23
目录1.什么是MVP?2.Google官方的MVP3.V1.1 My MVP V14.V1.2 My MVP V21.什么是MVP?Google在2016年推出了官方的Android MVP架构Demo,本文主要分析一下官方的MVP Demo,并且借由自己的一些经验,提出一些学习过程中,遇到的问题和自己的改进、封装措施。MVP架构已经推出很多年了,现在已经非 ......
204
0
0
2023-06-23
目录同步与异步Android中的多线程Android中的多线程与主线程与子线程Handler异步通信系统使用新线程计算质数同步与异步同步的执行任务:在执行程序时,如果没有收到执行结果,就一直等,不继续往下执行,直到收到执行结果,才接着往下执行。异步的执行任务:在执行程序时,如果遇到需要等待的任务,就另外开辟一个子线程去执行它,自己继续往下执行其他程序。子线程 ......
258
0
0
2023-06-23
目录Intentandroid中Intent和Bundle之间的关系IntentIntent是Android程序中个组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,可以指定你想要启动的活动,也可以在不同组件之间传递数据。第一部分:通过intent来启动一个活动Intent 分为显示和隐式我们先来了解一下显示其中一个常用的构造方法是:In ......
330
0
0
2023-06-23
目录自定义注解使用自定义注解通过反射机制获取注解参数1. 布局文件获取2. 控件获取实现3. 控件点击响应自定义注解1) 先定义布局文件注入//注解的作用域在类上 @Target(ElementType.TYPE) //让保持性策略为运行时态,将注解编码到class文件中,让虚拟机读取 @Retention(RetentionPolicy.RUNTIM ......
232
0
0
2023-06-23
目录线程间通信的作用线程通信的方式调用Handler类调用Activity类的runOnUiThread方法调用View类中的post方法通过新建一个继承AsyncTask父类的子类来实现使用EventBus等工具总结当我们的软件启动的时候,计算机会分配进程给到我们运行的程序,在进程中包含多个线程用于提高软件运行速度。在android网络请求中,我们知道在日 ......
304
0
0
2023-06-23
目录1.onSaveInstanceState()方法2.ViewModel1.onSaveInstanceState()方法当一个Activity进入了停止状态,是有可能被系统回收的。想象以下场景:应用中有一个ActivityA,用户在ActivityA的基础上启动了ActivityB,ActivityA就进入了停止状态,这个时候由于系统内存不足,将Act ......
247
0
0
2023-06-23
目录引言依赖项创建导航图导航宿主导航到目的地传递参数NavigationUI多模块导航引言导航是指支持用户导航、进入和退出应用中不同内容片段的交互。Android Jetpack 的导航组件可实现导航,无论是简单的按钮点击,还是应用栏和抽屉式导航栏等更为复杂的模式,该组件均可应对。依赖项 def nav_version = "2.5.2" i ......
216
0
0
2023-06-23
目录1.缓存的使用流程源码分析-滑动入口2.RecyclerView的缓存流程3.RecyclerView缓存总结RecyclerView是一个非常重要的控件,是任何一个研发都需要掌握的,这个控件的设计也是非常优秀的,值得我们去学习。RecyclerView的核心就是缓存机制,RecyclerView为了提升效率使用了4级缓存:mChangeScrap与 m ......
283
0
0
2023-06-22
目录一、先上效果图二、ChipGroup和Chip三、在ChipGroup中动态添加Chip四、找到每个Chip位于的行数五、实现思路六、需要注意的问题1、Chip的复用问题2、Chip的ID设置3、点击同一个Chip返回的ID为-1的问题一、先上效果图借用某东App的效果,如下。折叠时的效果:展开时的效果:二、ChipGroup和ChipchipGroup ......
294
0
0
2023-06-21
目录1.MediaCodec 是什么2.创建MediaCodec的方式2.1按照格式创建2.2按照名字创建3.MediaCode硬件解码并进行播放实例4.MediaCodec 异步解码进行播放1.MediaCodec 是什么MediaCodec类可以访问底层媒体编解码器框架(StageFright 或 OpenMAX),即编解码组件。是Android 的低层 ......
244
0
0
2023-06-21
目录1.使用Gilde显示一张图片2.Glide with操作源码解析3.Glide 的load操作4.Glide的into流程解析5.Glide1.使用Gilde显示一张图片Glide.with(this). load("https://cn.bing.com/sa/simg/hpb/xxx.jpg") .into(im ......
243
0
0
2023-06-21