setStrokeCap(Paint.Cap cap) 设置线头的形状放出「平头」「圆头」「方头」这种翻译我始终有点纠结:既觉得自己翻译得简洁清晰尽显机智,同时又担心用词会不会有点太过通俗,让人觉得我不够高贵冷艳?当线条的宽度是 1 像素时,这三种线头的表现是完全一致的,全是 1 个像素的点;而当线条变粗的时候,它们就会表现出不同的样子:虚线是额外加的,虚线左边是线的实际长度,虚线右边是线头。有了
2022-11-23 michael007js 618
先编译好要调试的程序,如:1.设置断点选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可2.开启调试会话点击红色箭头所指向的虫子图标,Debug模式启动APP。点击红色箭头指向的小虫子,开始进入调试。IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法fun2()中,程序的第41行。红色箭头悬停的区域是程序的方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的
2022-11-25 michael007js 605
spring与JDK版本对应Spring Framework 6.0.x:JDK 17-21Spring Framework 5.3.x:JDK 8-19Spring Framework 5.2.x:JDK 8-15Spring Framework 5.1.x:JDK 8-12Spring Framework 5.0.x:JDK 8-10Spring Framework 4.3.x:JDK 6-8
2023-08-17 michael007js 595
正三角<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/shape_i
2023-03-09 michael007js 533
我们知道,在 Android 5.0 以后,可以通过 xml 或 Java代码 的方式给 View 添加阴影// 方式一:xml 设置android:elevation="10dp"// 或android:translationZ="10dp"// 方式二:java 代码设置view.setElevation(20);// 或view.setTranslat
2022-12-30 michael007js 529
在Android的PorterDuff.Mode类中列举了他们制定的规则:android.graphics.PorterDuff.Mode.SRC:只绘制源图像android.graphics.PorterDuff.Mode.DST:只绘制目标图像android.graphics.PorterDuff.Mode.DST_OVER:在源图像的顶部绘制目标图像android.graphics.Port
2022-12-06 michael007js 497
在上一章,我们已经从操作系统的维度了解了一个进程的内存模型。这一节,我们将维度继续上升,从应用层出发看看一个 App 运行时的内存模型是怎样的。从 App 运行时的内存模型中我们可以知道导致内存增长的源头,从源头出发,可以更有目的去治理内存,还能进一步分析引起增长的代码逻辑或者数据。为了让大家深入掌握 App 运行时的内存模型,这一节的内容按照由外到内、逐步深入的原则,分为了 3 个部分:内存描述
2022-12-15 michael007js 494
为什么要引进 Lifecycle我们在处理Activity或者Fragment组件的生命周期相关时,不可避免会遇到这样的问题:我们在Activity的onCreate()中初始化某些成员,比如MVP架构中的Presenter,或者AudioManager、MediaPlayer等,然后在onStop中对这些成员进行对应处理,并在onDestroy中释放这些资源。这是很常见的情形,按照通常的做法,我
2022-11-23 michael007js 489