测量,是Paint的一个内部类 /** * Class that describes the various metrics for a font at a given text size. * Remember, Y values increase going down, so those values will be pos
原创
精选
2023-06-02 10:36:58
398阅读
一、概述视图(VIEW),也称为虚表,不占用物理空间,这个也是相对的概念,因为视图本身的定义语句还是要存储在数据字典里面的。视图只有逻辑定义,每次使用的是时候,只是重新执行SQL。视图是从一个或者多个表中获得的。这些表存放在数据库中,那些用于产生视图的表叫做该视图的基表,一个视图也可以从另一个视图中产生。视图的定义存在数据库中,于此定义相关的数据并没有再存一份在数据库中。通过视图看到的数据存放在基
转载
2023-10-09 14:16:38
76阅读
自定义View代码如下:public class CircleProgress extends View { private Paint mPaint; private int mWidth; private int mHeight; private static final int RING_WIDTH =80; public CircleProgre
原创
2022-11-11 11:02:29
150阅读
1、补间动画demo地址:https://github.com/chaozhouzhang/CustomProgressView1.1、缩放xml实现代码实现1.2、不透明度xml实现代码实现1.3、
原创
2022-03-14 16:58:58
609阅读
属性动画DEMO地址:https://github.com/chaozhouzhang/CustomProgressView1、值动画ValueAnimator值动画具体实现步骤:使用值动画,实现抛物
原创
2022-03-14 17:14:00
479阅读
1.7、得到路径上某一长度的位置,以及该位置的正切值的矩阵。
原创
2022-03-15 15:42:59
798阅读
一、概述继续学习自定义view,主要还是讲解画笔,实现的功能是用两种颜色的画笔画文字,根据滑动的偏移量,实现颜色过渡,可以用于页面的指示器。
效果图:
指示器.gif
二、思路分析有两种颜色,一种默认颜色,一种选中的颜色(改变的颜色),一个文本两种不同颜色的画笔去画,画的起始点和结束点(也就是文字的绘制矩形区域)根据左滑或者右滑的偏移量而改
转载
2023-03-16 21:51:29
204阅读
在ViewGroup中,初始化时设置了WILL_NOT_DRAW,设置WILL_NOT_DRAW之后,onDraw()不会被调用,目的是略过绘制的过程,优化了性能。所以,在写自定义ViewGroup布局时,如果需要调用onDraw()进行绘制,则需要在初始化时候,调用setWi…
原创
2022-03-14 17:10:27
1186阅读
一概述:1)应用场景:好友列表,通讯录,应用管理,文件管理等 2)效果图: 3)需要实现的功能: a.A-Z索引的绘制 b.处理Touch事件 c.提供回调函数 d.把汉字转换为拼音 e.进行排序展示 f.进行分组 g.将控件绑定到listview二、创建自定义快速索引View –QuickIndexBar1、第一步:创建activitypublic class Index
原创
2023-03-06 11:10:11
178阅读
注明: 非常感谢 gcssloop 的博客,以下为我学习时的笔记记录。自定义View分为自定义ViewGroup与自定义View.但其实在绘制的时候 ViewGroup 相当于容器,view为子view,子view内部也可能会有viewgroup,所以是层层递归。函数调用链自定义View绘制流程函数调用链几个重要的函数1. 构造函数构造函数式View的入口,可以用于初始化一些...
转载
2022-02-09 11:12:22
84阅读
推荐理由
近期推送的都是关于自定义View,再来一波,来加固onDraw理解和学习。
作者:qindachang
项目地址
https://github.com/qindachang/RulerView
使用
build.gradle中引用
compile 'com.qindachang:ruler-view:1.0.0'
XML布局
<com.qindac
转载
2021-06-11 08:29:57
1252阅读
获取路径上指定距离的坐标位置与正切向量,并存储在相应的数组中,其中 distance 参数表示路径的距离位置,
原创
精选
2023-11-27 11:34:54
408阅读
Android自定义View-基础篇注明: 非常感谢 gcssloop 的博客,以下为我学习时的笔记记录。坐标系屏幕坐标系和数学坐标系的区别由于移动设备一般定义屏幕左上角为坐标原点,向右为x轴增大方向,向下为y轴增大方向,所以在手机屏幕上的坐标系和数学中常见的坐标系是稍微有差别的。如下:实际屏幕上的默认坐标系如下:View上的坐标系(View上的坐标系是相对于父控件而言...
转载
2022-02-09 10:27:56
82阅读
实现效果如上图。分为两个部分,一个是画板View,因为添加了撤销上一步功能,所以每次绘制的pat
原创
2023-02-01 12:10:34
239阅读
//自定义View是编程水平进阶的一个体现,要想实现自定义View,你需要掌握以下知识点。View的弹性滑动属性动画弹性滑动View的触碰事件View事件的分发机制View事件的滑动冲突View的绘制原理动态添加代码理解MeasureSpecmeasure流程layout流程draw流程以及shape、selector等
原创
2023-09-01 10:03:07
53阅读
自定义View为什么要自定义View? 主要是Andorid系统内置的View 无法实现我们的 需求,我们需要针对我们的业务需求定制我们想要的 View.自定义View 我们大部分时候只需重写两个函数: onMeasure(),onDraw(). onMeasure()负责对当前View 的尺寸进行测量,onDraw负责把当前这个View绘制出来,当然了,还需要写构造函数。public Vi...
原创
2022-02-09 11:03:47
630阅读
/article/details/51010839Paint.Styleprivate fun drawStyle(canvas: Canvas?) { val mPaintFor1: Paint = Paint() val mPaintFor2: Paint = Paint() val mPai
原创
2023-06-02 10:37:50
133阅读
Caused by: java.lang.IllegalArgumentException: Binary XML file line #39: Duplicate id 0x7f07006d, tag null, or parent id 0x0 with another fragment for com.tvie.ivideo.pad.main.HotVideoFragment10-28 18
原创
2013-10-28 18:16:27
564阅读
Android View系统解析系列:
介绍View的基础知识、View的滑动、弹性滑动、滑动冲突解决方案、事件分发等
介绍View的Framework层原理、View的measure / layout / draw三大流程和一些高级技巧
本次主要介绍下半部分,提纲例如以下
View的绘制过程
measure/layout/draw 工作流程
识别 MeasureSpec 并可以 mak
原创
2022-01-12 11:00:30
43阅读
操作系统:linuxBIND版本:BIND 9.2.4-5 DNS 服务器:192.168.1.1企业内部(lan)IP段:192.168.1.0/24企业外部(wan)IP段:除192.168.1.0/24之外的所有 域名:testdns.org 我们希望企业内部IP所解析到www.testdns.org的IP地址为:192.168.1.3,外部IP段则解析到:192.168.1.100;nam
原创
2010-02-26 13:43:58
321阅读