概述这次的内容其实相比上篇要容易的多,只需要接触代码上的知识就好了
本文介绍的是ViewPropertyAnimator和ObjectAnimator
应用场景ViewPropertyAnimator和ObjectAnimator原理都是使用了ValueAnimator
ViewPropertyAnimator是作为一个辅助类来调用ValueAnimator
而ObjectAnimator则...
概述Android 坐标系都是以左上角为原点,并且 view、canvas、Camera 是一个独立的坐标系
所以在进行绘制的时候,比如:自定义 Drawable 或者自定义 View,该如何去思考这个绘制流程呢?
如过你看过扔物线的视频或者文章,又或者在网上搜索过,一定知道 “倒着写绘制流程” 这种方法,但为什么要倒着写呢???
今天我来讲解更详细的内部原理
原理原理就是,Android ...
我们从写一个自定义 View 开始,了解 View 分发机制
事件分发
返回true消费事件
我们都知道 OnTouchEvent 和 OnTouchListener.onTouch() 都会返回 boolean 值
返回 true 表示消费此次事件
并且消费的是这个事件指的是一个事件序列,这一事件序列都...
问题如果你要做一个功能:有 4 个按钮,按着按钮的时候,间隔 500ms 循环调用某个函数(比如打印一条 log,或者改某个数值),并且按下每个按钮,也不能影响其他按钮的按下状态,该怎么做?
解决思路你当然会直接想到 setOnTouchListener ,但是很快就会发现,按钮的按下事件只会回调一次
与多次回调的区别
如果你调...
第一个视频(学不会协程?很可能因为你看过的教程都是错的)学不会协程?很可能因为你看过的教程都是错的
协程的概念开头就说了,我们没有必要关注协程是什么!因为协程并没有一个官方的或者统一的定义,包括维基百科(作者一直在说 kotlin 协程,而不是只说协程,应该也是在表示,视频里只是讲解 kotlin 协程,而不是所有协程)
而对于 kotlin 协程,明确给出了,就是一套线程 API
协程的...
问题
很多博客自定义字体的时候,都是用的 google fonts 的链接但是很多字体 google fonts 里面没有,那我们该怎么办呢?
google fonts 的原理我们点开一个链接 Ubuntu mono https://fonts.googleapis.com/css2?family=Ubunt...
斐波那契数列在算法中占有很高的地位,
主要是很多题目背后的根源都是斐波那契数列
递归法算法思路递归
代码12345678910111213private fun fibonacci(n: Int): Int { if (n < 0) { return -1 } if (n == 0) { return 0 } if (n == 1) { return 1...
io
i(输入),o(输出)
只要是把数据从程序外部拷贝到程序内部,都叫输入,包括但不限于,硬盘文件数据,网络数据,其他应用程序的数据
只要是把数据从程序内部拷贝到程序外部,都叫输入,包括但不限于,硬盘文件数据,网络数据,其他应用程序的数据
FileInputStream & FileOutPutStr...
概念Dpi (Dots Per Inch)
每英寸点数,原本是从打印机过来的概念,对于显示屏幕,用 ppi
很多刚接触Android开发的小伙伴,对于这个dp一脸懵逼,百度了很久,也是一些计算dpi的方法,根本没有讲到点子上!
我们需要先了解一下这个DisplayMetrics类
里面有几个常用的常量
123456Log.d("lucas", "density = ${resources.d...
Drawable 是什么?Drawable并不是图
Drawable是一个抽象类,用于表示可绘制对象。本身是一个绘制工具,更像一个只专注于绘制的 View,所以一个 Drawable 显示什么,取决于它绘制什么
1234567package android.graphics.drawablepublic abstract class Drawable { ... public a...