我的博客

  • Android自定义控件 - 源码里有宝藏之自动换行控件

    回想一下在作文本上写作的场景,当从左到右写满一行后,会切换到下一行的开头继续写。如果把“作文本”比作容器控件,把“字”比作子控件。Android 原生控件中没有能“自动换行”的容器控件,若不断向LinearLayout中添加View,它们会沿着一个方向不断堆叠,即使实际绘制位置已经超出屏幕。业务场景自动换行容器控件的典型应用场景是:“动态多选按钮”,即多选按钮的个数和内容是动态变化的,这样就不能把

    2022-12-14 michael007js 243

  • android canvas layer (图层)详解与进阶

    1 概述在使用相关方法和flag的时候,先关闭硬件加速。如果需要开启,参照谷歌官方的硬件加速表格。硬件加速版本2 saveLayersaveLayer可以为canvas创建一个新的透明图层,在新的图层上绘制,并不会直接绘制到屏幕上,而会在restore之后,绘制到上一个图层或者屏幕上(如果没有上一个图层)。为什么会需要一个新的图层,例如在处理xfermode的时候,原canvas上的图(包括背景)

    2022-12-13 michael007js 2127

  • canvas变换

    概述要运用好canvas绘图,不仅需要使用前面说到的canvas的基本绘制,也必须使用好canvas的变换。Canvas的变换有 平移(translate),旋转(rotate),缩放(scale),错切(skew),裁剪(clip),保存(save),保存图层(saveLayer),恢复(restore),恢复到指定状态(restoreToCount)等。以上的变换操作与屏幕的显示有一定关系,首

    2022-12-13 michael007js 106

  • 车载Android应用开发入门指南

    1. 前言 - 移动互联网退潮下的汽车大战将时间回退到2017年我大学刚毕业时,彼时移动互联网就已经开始退潮,各大个培训机构也纷纷停止了Android相关的培训,曾经热火朝天的应用开发从那时起,就开始走向下坡路,小程序以及众多跨平台框架也让市场对Android原生开发的需求逐年降低,市场需求的降低也造就了Android开发的面试变得史无前例的“卷”。终于我在2019年选择离开了互联网,投身当时还不

    2022-12-13 michael007js 133

  • 每次调试打印日志都很头痛

    引子当代码的运行效果不符合预期时就得进行调试,排查下整个数据链路上到底是哪个环节出了问题。断点调试当然是首选,因为它可以单步执行程序,并查看当前执行步骤中所有的数据值。但有些场景下,断点调试就显得笨拙。比如大量异步并发的场景,当程序不是线性执行而是跳来跳去时,就会发生你期望下一步是执行到这里,断点调试却跳到了另一个线程,这样的复杂度,让正在执行的代码变得难以理解。除此之外,有些型号的手机,一断点调

    2022-12-13 michael007js 56

  • 全网最优雅安卓列表项可见性检测

    引子业务开发中列表项的曝光埋点做得越来越精细了。一开始,我是在 onBindView() 中上报列表项曝光的:// RecyclerView.Adapter.ktoverride fun onBindViewHolder(holder: ViewHolder, position: Int, payloads: MutableList<Any>) { ReportUtil.repo

    2022-12-13 michael007js 53

  • 全网最优雅安卓控件可见性检测

    引子view.setOnClickListener { // 当控件被点击时触发的逻辑 }正是因为 View 对控件点击采用了策略模式,才使得监听任何控件的点击事件变得易如反掌。我有一个愿望。。。如果 View 能有一个可见性监听该多好啊!view.setOnVisibilityChangeListener { isVisible: Boolean -> }系统并未提供这个方法。。。但业

    2022-12-13 michael007js 116

  • synchronized实现原理

    synchronized作为java语言中的并发关键词,其在代码中出现的频率相当高频,大多数开发者在涉及到并发场景时,一般都会下意识得选取synchronized。synchronized在代码中主要有三类用法,根据其用法不同,所获取的锁对象也不同,如下所示:修饰代码块:这种用法通常叫做同步代码块,获取的锁对象是在synchronized中显式指定的修饰实例方法:这种用法通常叫做同步方法,获取的锁

    2022-12-13 michael007js 42

首页
关于博主
我的博客
搜索