2023年4月18日

摘要: 具体来说,可以定义一个基类(例如 struct),然后通过嵌入(embedding)基类的方式在子类中实现继承。同时,可以使用接口来定义类的行为。 举个例子,假设需要定义一个动物(Animal)作为基类,其中有一个Say方法表示动物的叫声: type Animal struct { NumLegs 阅读全文
posted @ 2023-04-18 01:45 7m 阅读(127) 评论(0) 推荐(0) 编辑

2022年12月29日

摘要: save/savelayer Canvas里面牵扯两种坐标系:Canvas自己的坐标系、绘图坐标系,当Canvas画布被创建时,Canvas的坐标系就被创建了,并且此坐标系是固定不变的,就是(0,0)到Canvas的宽高,而我们使用Canvas的平移,旋转等方法时实际上操作的是绘图坐标系 Canva 阅读全文
posted @ 2022-12-29 13:55 7m 阅读(28) 评论(0) 推荐(0) 编辑
摘要: TypedArray val typedArray: TypedArray = context.obtainStyledAttributes(attrs, R.styleable.EdgeTransparentView) position = typedArray.getInt(R.styleabl 阅读全文
posted @ 2022-12-29 13:54 7m 阅读(16) 评论(0) 推荐(0) 编辑
摘要: setStyle setStrokeCap - 笔头的样式 setStrokeJoin - 线交角的样式 setShader(Shader shader) - 用来处理颜色渐变 Shader的模式 LinearGradient - 线性渐变 SweepGradient - 圆形扫面渐变 Radial 阅读全文
posted @ 2022-12-29 13:54 7m 阅读(37) 评论(0) 推荐(0) 编辑

2022年12月28日

摘要: package com.focus.mimilive.widget.imggroup import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import a 阅读全文
posted @ 2022-12-28 19:48 7m 阅读(18) 评论(0) 推荐(0) 编辑

2022年11月10日

摘要: 问题重现 简单讲,就是以Android 12为目标平台的App,如果使用到了AlarmManager来设置定时任务,并且设置的是精准的闹钟(使用了setAlarmClock()、setExact()、setExactAndAllowWhileIdle()这几种方法),则需要确保SCHEDULE_EX 阅读全文
posted @ 2022-11-10 19:14 7m 阅读(1485) 评论(0) 推荐(0) 编辑