![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 92
胖胖虎ya
have a try!
展开
-
大白话描述Android事件分发 -简洁版
事件分发机制是Android十分重要的一个机制,在日常开发过程中,我们时常需要利用它的一些特性去完成我们的需求。今天笔者就用比较通俗的话来讲一下,笔者对于事件分发机制的认识和理解。事件分发系列,笔者准备写两篇,一篇基础版,一篇进阶版,在基础版中,笔者只会讲事件分发的基本流程,以及处理方式,而在进阶版中,笔者准备对一些必要的知识进行展开。...原创 2022-07-07 18:39:04 · 692 阅读 · 1 评论 -
OkHttp - 拦截器篇
根据上一篇 核心流程 ,我们大致知道了okhttp的内部运转,但是对于网络请求的缓存、连接复用以及网络监控的功能的实现,我们是只知其然,而不知其所以然,我们只知道是负责各个功能的拦截器帮助我们完成了底层的任务,但是却不知道原理是什么。今天跟着笔者继续学习Okhttp各个拦截器的原理实现。限于篇幅,在文章中,笔者只对相关拦截器的intercept方法进行了分析,但是并没有展开,有兴趣的同学可以自己去看。...原创 2022-06-24 23:06:32 · 1795 阅读 · 0 评论 -
Android异步消息机制 - Handler系列 (3)
哈喽哈喽~ 笔者在过去一个月都在准备考试,所以没有更新啦,现在又和大家见面了,这是笔者的第三篇Handler文章,主要是为了给出笔者在使用和学习过程中,对于handler的一些思考,以及补充在过去两篇文章中未提到的,但是仍然重要的知识点。...原创 2022-06-20 19:41:31 · 313 阅读 · 0 评论 -
我的小工具-卡片学习APP 完成啦
在过去的十天里,我都做了些什么?说好的要准备秋招,咋又不见了?实际上在过去的十天里,我也在为秋招努力(完善自己准备的小项目),很高兴今天将整个APP的初稿完成了,《卡片学习》是一款Android系统的工具APP,由于审核材料问题,目前并未上架,只是在蒲公英上传了内测版本(这里就不贴链接了)。源码开源在GitHub - CardStudy。如果有同学想要练手项目可以去拿,不过别忘了star一下嘻嘻~。...原创 2022-06-20 19:39:28 · 261 阅读 · 0 评论 -
Android 异步消息机制 Handler - 系列 (2)从源码深入了解Handler
前几天笔者分享了对于Handler的一些浅显的认识与使用,相信想要在Android方向继续学习下去的同学们一定不会止步于上个阶段,那么笔者今天就和伙伴们一起进阶,去详细的了解Handler的工作流程以及它的四大成员的详细分析。如果没有阅读过上个阶段的伙伴想要去了解的话,可以到本站Android目录下查看。注: 文中所有源码基于Android 10Handler的运行流程先上一张图解,该图片是从gityuan 大佬哪搞来的,实际上这就是整个Handler的工作流程了。先给出这张图让大家在整体上能有一些概原创 2022-05-14 21:36:33 · 381 阅读 · 0 评论 -
Android 异步消息机制 Handler机制 - 系列(1)
这是我的第一篇Handler文章,也是我秋招准备的第一战,共勉!在过去的面试中多次被问到Handler,可见Handler在Android中的地位,所以我们很有必要好好的学习一下该机制,那就跟着笔者好好的整理一下Handler吧。接下来我们就浅聊一下Handler。Handler的用处通俗的讲,整个异步消息机制其实就是为了方便我们在多线程环境下的开发。先放官方给的:There are two main uses for a Handler: (1) to schedule messages and原创 2022-05-10 17:17:56 · 679 阅读 · 0 评论 -
Arouter路由原理-简述
很想写一篇关于路由的文章,但是由于一些原因一直没有去完成,直接使用了Arouter作为路由方案,进行了我的组件化改造之路。最近经过一些鞭打,我发现我并不能完整的表达出来,所以我还是决定再去了解了解它的原理,博文内容仅代表个人意见,并且由于本人知识有限,如有错误,敬请指正!谢谢!原创 2022-03-28 21:52:55 · 1044 阅读 · 0 评论 -
Android 组件化架构-简谈
说在前面:随着业务的增加,由于单一工程下业务全都集合在主工程下,而导致业务间相互交错的依赖耦合越来越严重,那么就可能出现动一触千的现象,这时候将业务按照功能的不同抽离出来就显得迫在眉睫。了解组件化在了解组件化之前,我们需要先了解模块化。模块化就是将整体业务集合按照功能的不同,抽离到不同的模块中,这样做的好处就是在团队协助中能够较好的区分各自负责的功能模块、也能使得整个工程显得不是那么庞大和复杂。但是在工程结构不断扩大的情况下,模块之间的耦合也会变的错综复杂,这时候我们就需要将模块化再次升级,使得各原创 2022-03-14 21:07:15 · 6820 阅读 · 0 评论 -
安卓浸入式状态栏的实现
效果图:实现这样的效果有很多方法 :方法一:直接在该页面的Activity内添加如下代码:class WeatherActivity : AppCompatActivity() { val viewModel by lazy { ViewModelProviders.of(this).get(WeatherViewModel::class.java) } override fun onCreate(savedInstanceState: Bundle?) { s原创 2020-10-25 19:41:47 · 315 阅读 · 0 评论 -
Android架构模式之 MVVM模式
MVVM模式简介MVVM模式就是由View层 ViewModel层 以及Model层组成的。View层就是控制布局和外观Model层是获取业务数据模型ViewModel则负责处理View中的业务逻辑和处理数据MVVM模式中我们不需要再使用findviewbyid等方式去为具体的view设置内容等,而是借用DataBinding工具以ViewModel为桥梁将数据和视图进行双向绑定,当其中任意一方改变,另一方也会随之改变。...原创 2021-05-16 18:52:52 · 674 阅读 · 3 评论 -
Android单例模式 Double -Check 写法
Android设计模式单例模式单例模式的概念:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。优点:对于那些比较耗内存的类,只实例化一次可以大大提高性能,尤其是在移动开发中。保持程序运行的时候该中始终只有一个实例存在内存中单例有很多写法 如:饿汉式, 懒汉式 , 双重校验锁, 静态内部类写法等 ,这里我们介绍的是双重校验锁的写法单例模式 - Double Check//java写法public class SingleDemo{private volatile原创 2021-05-10 11:37:25 · 419 阅读 · 0 评论 -
利用Intent传递对象类型的数据 Kotlin
Intent传递对象需要序列化对于Intent序列化有两种方法一种是Serializable,另一种是Parcelable。这里我用到的是Parcelable 因为在Kotlin实现里Parcelable有一种特别方便的实现,不需要写过多的逻辑。build.gradle添加pluginapply plugin: 'kotlin-android-extensions'然后在android节点下添加以下代码:(因为该特性当前属于实验特性)android {... androidExt原创 2020-12-10 16:33:18 · 2108 阅读 · 0 评论 -
实现动态添加fragment到viewpager和tablayout
这里的需求是动态的添加一个fragment到viewpager以及tablayout新增一个tab效果图如下(动图就没弄了,别问 问就是懒!!!!)也就是点击右边的加号可以添加fragment到viewpager 然后tablayout也要多一个tab选项开始实现(原理)创建一个mFragment继承Fragment这里主要是为了业务需求,因为添加的fragment肯定不会只是一个空白的fragment叭 所以需要在mFragment里面实现需要的逻辑和一些布局布局文件里添加vi原创 2020-11-28 11:47:18 · 969 阅读 · 2 评论 -
tablayout如何设置字体大小,颜色等属性
tablayout如何设置字体大小 颜色等属性用了tablayout后会发现在xml文件内是没有textSize 和textColor 等这些属性的,想要设置这些属性,我们需要给他创建一个样式,具体操作如下:先在res/values/styles.xml文件内添加如下样式:<style name="TabTextSize" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"> <item na原创 2020-11-28 10:52:06 · 2341 阅读 · 0 评论 -
Android(Kotlin)创建全局context解决在有些地方获取不到上下文context
创建全局context以解决在有些地方获取不到上下文context首先创建一个类 类名叫MyApplication 如下class MyApplication : Application() { companion object{ @SuppressLint("StaticFieldLeak") lateinit var context: Context } override fun onCreate() { super.onC原创 2020-11-20 20:37:48 · 4841 阅读 · 0 评论 -
将图片用字节数组存到数据库中,以及从数据库中读取
将图片转换成字节数组先将图片转换成Bitmap对象(代码省略)然后声明并创建一个输出字节流的对象val os= ByteArrayOutputStream()再调用compress将Bitmap对象压缩成PNG格式bimap.compress(Bitmap.CompressFormat.PNG,100,os)//第二个参数为100表示图片质量不压缩//第三个参数为接收压缩后数据的容器最后将字节输出流转换成字节数组val byte=os.toByteArray()然后就可以把这原创 2020-11-14 15:30:47 · 1042 阅读 · 0 评论 -
如何给AS的AVD设置中文输入法或者安装其它输入法
由于创建的AVD默认是英文输入法,我们可以进行更改让它变为中文打开你的AVD跟着我的图来操作吧好了到这就完成了 快去愉快的敲代码吧!!! 这个是平板的 手机的也是一样。想要安装搜狗输入法或者其它输入法,先拿到该输入法的apk 然后把该安装拖到虚拟器的文件就好啦 由于我没apk 就不演示了(哈哈哈哈哈…)…...原创 2020-10-22 22:09:48 · 1626 阅读 · 0 评论