51、自定义View基础和原理】的更多相关文章

一.编写自己的自定义View最简单的自定义View,继承View通过覆盖View的onDraw方法来实现自主显示利用Canvas和paint来绘制显示元素(文字,几何图形等) <com.myview.v1.MyView android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00ff00" /> publ…
课程背景: 在 Android 提供的系统控件不能满足需求的情况下,往往须要自己开发自己定义 View 来满足需求,可是该怎样下手呢.本课程将带你进入自己定义 View 的开发过程,来了解它的一些原理. 核心内容: 1.编写自己的自己定义 View 2.增加逻辑线程 3.提取和封装自己定义 View 4.利用 xml 中定义样式来影响显示效果 编写自己的自己定义 View(上) 本课时主要解说最简单的自己定义 View,然后增加绘制元素(文字.图形等),而且能够像使用系统控件一样在布局中使用.…
前言 自定义View原理是Android开发者必须了解的基础: 在了解自定义View之前,你需要有一定的知识储备: 本文将全面解析关于自定义View中的所有知识基础. 目录 目录 1. View的分类 视图View主要分为两类: 类别 解释 特点 单一视图 即一个View,如TextView 不包含子View 视图组 即多个View组成的ViewGroup,如LinearLayout 包含子View 2. View类简介 View类是Android中各种组件的基类,如View是ViewGroup…
自定义控件, 视频教程 http://www.jikexueyuan.com/course/1748.html 1. 编写自定义view 2. 加入逻辑线程 3. 提取和封装自定义view 4. 利用xml中定义样式来影响显示效果 工程代码 DIYControls.zip ---------------------------------- 1. 编写自定义view 定义MyView public class MyView extends View { public MyView(Context…
每天我们都会使用很多的应用程序,尽管他们有不同的约定,但大多数应用的设计是非常相似的.这就是为什么许多客户要求使用一些其他应用程序没有的设计,使得应用程序显得独特和不同. 如果功能布局要求非常定制化,已经不能由Android内置的View创建 -这时候就需要使用自定义View了.而这意味着在大多数情况下,我们将需要相当长的时间来完成它.但这并不意味着我们不应该这样做,因为实现它是非常令人兴奋和有趣的. 我最近面临了类似的情况:我的任务是使用ViewPager实现Android应用引导页.不同于i…
一.坐标 ①.通过View获取坐标,通过调用getLeft().getRight()...方法获取坐标. 1.获取到的是相对于View父控件的位置 2.指的是左上角和右下角的x,y值 3.View还提供了setTranslate()和getX(),getY()方法 translate()指的是偏移量,偏移量指的是在当前基础上,移动的距离 getX()指的是getLeft()+trasnalte() ②.通过event事件点击获取到的坐标 getX():以自身View左上角点为坐标远点. getR…
转自:https://www.gcssloop.com/customview/CustomViewIndex/ 1.坐标系 2.角度弧度 3.颜色 一.屏幕坐标系和数学坐标系的区别 由于移动设备一般定义屏幕左上角为坐标原点,向右为x轴增大方向,向下为y轴增大方向, 所以在手机屏幕上的坐标系与数学中常见的坐标系是稍微有点差别的,详情如下: (PS:其中的∠a 是对应的,注意y轴方向!) 实际屏幕上的默认坐标系如下: PS: 假设其中棕色部分为手机屏幕 二.View的坐标系 注意:View的坐标系统…
目录 目录 1. 知识基础 具体请看我写的另外一篇文章:自定义View基础 - 最易懂的自定义View原理系列 2. draw过程作用 绘制View视图 3. draw过程详解 同measure.layout过程一样,draw过程根据View的类型分为两种情况: 如果View = 单一View,则仅绘制本身View: 如果View = VieGroup(包含子View),除了绘制自身View外,还需要绘制子View. 接下来,我将详细分析这两种情况下的draw过程. 3.1 单一View的dra…
目录 目录 1. 知识基础 具体请看我写的另外一篇文章:(1)自定义View基础 - 最易懂的自定义View原理系列 2. 作用 计算View视图的位置. 即计算View的四个顶点位置:Left.Top.Right和Bottom 3. layout过程详解 同measure过程一样,layout过程根据View的类型分为两种情况: 如果View = 单一View,则仅计算本身View的位置: 如果View = VieGroup,除了计算自身View的位置外,还需要确定子View在父容器中的位置.…
目录 目录 1. 作用 测量View的宽/高 在某些情况下,需要多次测量(measure)才能确定View最终的宽/高: 在这种情况下measure过程后得到的宽/高可能是不准确的: 建议在layout过程中onLayout()去获取最终的宽/高 2. 准备的基础 在了解measure 过程前,我们需要先了解measure过程中传递尺寸(宽 / 高测量值)的两个类: ViewGroup.LayoutParams (View 自身的布局参数) MeasureSpecs 类(父视图对子视图的测量要求…