Android 从 0 开始自定义控件之 View 基础知识与概念(一)

自定义 View 可以说是 Android 路上的一道坎,会的人觉得简单,不会的觉得很难。最近正好在看《Android 开发艺术探索》讲的自定义 View 这里,于是打算从头理一理自定义 View,写写笔记,方便日后自己查阅也希望能帮助到你。

安卓自定义 View 基础 - 角度与弧度

在我们自定义 View,尤其是制作一些复杂炫酷的效果的时候,实际上是将一些简单的东西通过数学上精密的计算组合到一起形成的效果。
这其中可能会涉及到画布的相关操作 (旋转),以及一些正余弦函数的计算等,这些内容就会用到一些角度、弧度相关的知识。

Android 从 0 开始自定义控件之 自定义 View 基础实例(十)

在前面的博客当中,我们学习了 View 的一些工作原理知识等,现在是时候来写一波实例了,毕竟实践出真知嘛~ 在开始写实例之前,首先来了解下自定义 View 到底有哪几种吧,然后再根据每种分别写一个简单的小栗子。

HenCoder Android 开发进阶:自定义 View 1-3 文字的绘制

这期是 HenCoder 自定义绘制的第三期:文字的绘制。 之前的内容在这里: HenCoder Android 开发进阶 自定义 View 1-1 绘制基础 HenCoder Android 开发进阶 自定义 View 1-2 Paint 详解 如果你没听说过 HenCode…

HenCoder Android 开发进阶: 自定义 View 1-1 绘制基础

从今天开始,HenCoder 就正式开讲知识技能了。按照我的计划,第一季是 UI,UI 一共分为三部分:绘制、布局和触摸反馈。本期是绘制部分的第一期。绘制大概会用 5~6 期的时间讲完,整个 UI 的绘制、布局和触摸反馈三部分大概会用十来期。更新频率大约为每周一更(不承诺哟)。 …

Android 从 0 开始自定义控件之 View 的 draw 过程 (九)

前面已经了解了 View 三大流程的 measure 和 layout 过程,这一篇继续学习最后的 draw 过程。draw 的过程依旧是在 ViewRootImpl#performTraversals 方法中调用的,其调用顺序是在最后, 相较与 measure 和 layout 过程要简单的多,它的作用就是将 View 绘制到屏幕上面。

HenCoder Android 开发进阶:自定义 View 1-4 Canvas 对绘制的辅助

这期是 HenCoder 自定义绘制的第 1-4 期:Canvas 对绘制的辅助——范围裁切和几何变换。 之前的内容在这里: HenCoder Android 开发进阶 自定义 View 1-1 绘制基础 HenCoder Android 开发进阶 自定义 View 1-2 Pa…

Android 从 0 开始自定义控件之自定义属性详解(十一)

和自定义 View 打交道,肯定是难免要写自定义属性的。虽然我们可以直接使用 Android 本身一些系统控件定义的属性,但是在实际开发中,由于我们所自定义 View 的多样性,所以我们就需要自己来定义属于我们所编写自定义控件的属性了。

安卓自定义 View 进阶 - 绘制基本图形

在上一篇自定义 View 分类与流程中我们了解自定义 View 相关的基本知识,不过,这些东西依旧还是理论,并不能拿来 (zhuang) 用(B), 这一次我们就了解一些能 (zhaung) 用(B)的东西。
在本篇文章中,我们先了解 Canvas 的基本用法,最后用一个小示例来结束本次教程。

Andriod 从 0 开始自定义控件之 View 的 layout 过程 (八)

在上一篇文章了,我们学习了 View 三大流程之一的 measure 过程,当 measure 过程完成后,View 的大小就测量好了。接下来就到了 layout 的过程了,layout 的过程就是用于确定 View 的位置。下面通过查看源码,来更深入的了解下 layout 的整个过程。

安卓自定义 View 进阶 - 画布操作

上一篇【Canvas 之绘制基本形状】中我们了解了如何使用 Canvas 绘制基本图形,本次了解一些基本的画布操作。合理的使用画布操作可以帮助你用更容易理解的方式创作想要的效果。

安卓自定义 View 进阶 - Path 之完结篇 (伪)

经历过前两篇 Path 之基本操作 和 Path 之贝塞尔曲线 的讲解,终于进入 Path 的收尾篇,本篇主要讲解Path中的填充模式,布尔运算,边界计算等。

安卓自定义 View 进阶 - Matrix 原理

Matrix 是一个在后台默默辛苦工作的劳模,我们经常看到它的劳动成果,却很少见到 Matrix,就让我们借助本篇文章来探访一下 Matrix 都做了哪些工作,是如何工作的。

安卓自定义 View 进阶 - 贝塞尔曲线

在上一篇文章 Path 之基本图形中我们了解了 Path 的基本使用方法,本次了解 Path 中非常非常非常重要的内容 - 贝塞尔曲线。让我们共同感受曲线之美。

Android 从 0 开始自定义控件之 View 的 measure 过程(七)

measure 过程要分两种情况,第一种是 View,第二种是 ViewGroup。如果是 View 的话,那么只通过 measure 方法就完成其测量过程,但是如果是 ViewGroup 的话,不仅需要完成自己的测量过程,还需要完成它所有子 View 的测量过程。如果子 View 又是一个 ViewGroup,那么继续递归这个流程。下面先从 View 开始,详细了解下 View 的 measure 过程。

安卓自定义 View 进阶 - Path 之玩出花样

本篇主要讲解 Path 与 PathMeasure 的关系以及两者结合创造出的神奇效果,想必用来装逼也是不错的。

安卓自定义 View 进阶 - 事件分发机制详解

【Android 干货】从应用场景理解 android 事件分发机制,和外面那些妖艳的贱货完全不一样呢。

安卓自定义 View 基础 - 坐标系

由于移动设备一般定义屏幕左上角为坐标原点,向右为 x 轴增大方向,向下为 y 轴增大方向, 所以在手机屏幕上的坐标系与数学中常见的坐标系是稍微有点差别的。

安卓自定义 View 进阶 - 图片文字

在上一篇文章 Canvas 之画布操作中我们了解了画布的一些基本操作方法,本次了解一些绘制图片文字相关的内容。如果你对前几篇文章讲述的内容熟练掌握的话,那么恭喜你,本篇结束之后,大部分的自定义 View 已经难不倒你了,当然了,这并不是终点,接下来还会有更加炫酷的技能。

安卓自定义 View 进阶 - 分类和流程

本章节为什么要叫进阶篇?(虽然讲的是基础内容),因为从本篇开始,将会逐渐揭开自定义 View 的神秘面纱,每一篇都将比上一篇内容更加深入,利用所学的知识能够制作更加炫酷自定义 View,就像在台阶上一样,每一篇都更上一层,帮助大家一步步走向人生巅峰,出任 CEO,迎娶白富美。 误,是帮助大家更加了解那些炫酷的自定义 View 是如何制作的,达到举一反三的效果。

安卓自定义 View 进阶 - 事件分发原理

图解 Android 事件分发原理,让你深入了解事件分发过程中的权力结构。

Android 从 0 开始自定义控件之 View 的弹性滑动(三)

在上一篇(Android 从 0 开始自定义控件之 View 的滑动(二))中,用 scrollTo() 和 scrollBy() 方法实现了 View 的滑动,但是实现的效果非常的生硬,用户体验很差。
这一篇继续在原有基础上,扩展下 View 的弹性滑动。

Android 从 0 开始自定义控件之 ViewRoot 与 DecorView (五)

好几个星期没写博客了,今天继续来学习 View 相关的知识:View 的三大流程:测量流程、布局流程、绘制流程。
在了解这三大流程之前,首先来了解下 View 的几个基本概念,关于 ViewRoot 和 DecorView。

安卓自定义 View 进阶 - Matrix 详解

这应该是目前最详细的一篇讲解 Matrix 的中文文章了,在上一篇文章 Matrix 原理中,我们对 Matrix 做了一个简单的了解,偏向理论,在本文中则会详细的讲解 Matrix 的具体用法,偏向实战。另外本文也包括了一些关于 Matrix 的实用技巧。

android 从 0 开始自定义控件之 View 的滑动冲突详解(四)

滑动冲突可以说每一个 Android 开发者都遇到过,虽然 Android 已经在如 ViewPager 这些控件内部处理了滑动冲突,但是在我们自己定义控件,或者一些复杂的布局情况下,依然要去解决滑动冲突的情况。
这一篇文章总结了下滑动冲突出现的场景,以及其中的规则和解决方法。

Android 从 0 开始自定义控件之 View 的滑动(二)

由于 Android 的屏幕局限性,为了展示更多的东西,实现一个可以滑动的 View 还是非常重要的。所以这篇文章主要记下 View 的几种常见滑动方式:

1,通过 View 的 ScrollBy 和 ScrollTo 方法实现滑动。
2,通过动画给 View 施加位移效果来实现滑动。
3,通过改变 View 的 LayoutParams 使 View 重新布局从而实现滑动。

HenCoder Android 开发进阶: 自定义 View 1-2 Paint 详解

这期是 HenCoder 自定义绘制的第二期: Paint。如果你没看过第一期,可以先去看一下第一期: HenCoder Android 开发进阶:自定义 View 1-1 绘制基础 简介 上一期我已经简单说过, Canvas 的 drawXXX() 方法配合 Paint 的几个…

Android 从 0 开始自定义控件之深入理解 MeasureSpec (六)

MeasureSpec 是 View 的一个内部类,代表了一个 32 位的 int 值,高 2 位代表 SpecMode,低 30 位代表 SpecSize。SpecMode 是指测量模式,SpecSize 是指在某种测量模式下的规格大小。.

该类在很大程度上决定了 View 的尺寸规格,之所以说很大程度上是因为这个过程还受父容器的影响,是因为父容器影响 View 的 MeasureSpec 的创建过程。系统会将 View 的 LayoutParams 根据父容器所施加的规则转换成对应的 MeasureSpec,然后再根据这个 MeasureSpec 来测量出 View 的宽高。需要注意的是,这个的宽高是测量的宽高,并不一定是 View 最终的宽高。

安卓自定义 View 基础 - 颜色

简要介绍安卓中的颜色相关内容,包括颜色的定义,创建颜色的几种方式,以及颜色的混合模式等。

安卓自定义 VIew 进阶 - Matrix Camera

一个专业给 View 拍照的摄像机,安卓制作简单 3D 效果必不可少的工具,你值得拥有。

安卓自定义 View 进阶 - Path 基础

在上一篇 Canvas 之图片文字中我们了解了如何使用 Canvas 中绘制图片文字,结合前几篇文章,Canvas 的基本操作已经差不多完结了,然而 Canvas 不仅仅具有这些基本的操作,还可以更加炫酷,本次会了解到 path(路径)这个 Canvas 中的神器,有了这个神器,就能创造出更多炫 (zhuang) 酷(B)的东东了。

Android 自定义 View相关推荐

  1. Android自定义View —— TypedArray

    在上一篇中Android 自定义View Canvas -- Bitmap写到了TypedArray 这个属性 下面也简单的说一下TypedArray的使用 TypedArray 的作用: 用于从该结 ...

  2. Android 自定义View —— Canvas

    上一篇在android 自定义view Paint 里面 说了几种常见的Point 属性 绘制图形的时候下面总有一个canvas ,Canvas 是是画布 上面可以绘制点,线,正方形,圆,等等,需要和 ...

  3. android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...

    转载:http://blog.csdn.net/xiabing082/article/details/48781489 1.  大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...

  4. Android自定义View:ViewGroup(三)

    自定义ViewGroup本质是什么? 自定义ViewGroup本质上就干一件事--layout. layout 我们知道ViewGroup是一个组合View,它与普通的基本View(只要不是ViewG ...

  5. android 自定义图形,Android自定义View之图形图像(模仿360的刷新球自定

    概述: 360安全卫士的那个刷新球(姑且叫它刷新球,因为真的不知道叫什么好,不是dota里的刷新球!!),里面像住了水一样,生动可爱,看似简单,写起来不太简单,本例程只是实现了它的部分功能而已,说实话 ...

  6. android代码实现手机加速功能,Android自定义View实现内存清理加速球效果

    Android自定义View实现内存清理加速球效果 发布时间:2020-09-21 22:21:57 来源:脚本之家 阅读:105 作者:程序员的自我反思 前言 用过猎豹清理大师或者相类似的安全软件, ...

  7. android中仿qq最新版抽屉,Android 自定义View实现抽屉效果

    Android 自定义View实现抽屉效果 说明 这个自定义View,没有处理好多点触摸问题 View跟着手指移动,没有采用传统的scrollBy方法,而是通过不停地重新布局子View的方式,来使得子 ...

  8. Android 自定义 圆环,Android自定义view实现圆环效果实例代码

    先上效果图,如果大家感觉不错,请参考实现代码. 重要的是如何实现自定义的view效果 (1)创建类,继承view,重写onDraw和onMesure方法 public class CirclePerc ...

  9. android自定义抽奖,Android自定义view制作抽奖转盘

    本文实例为大家分享了Android自定义view制作抽奖转盘的具体代码,供大家参考,具体内容如下 效果图 TurntableActivity package com.bawei.myapplicati ...

  10. android view 渐变动画,Android自定义view渐变圆形动画

    本文实例为大家分享了Android自定义view渐变圆形动画的具体代码,供大家参考,具体内容如下 直接上效果图 自定义属性 attrs.xml文件 创建一个类 ProgressRing继承自 view ...

最新文章

  1. 数据结构与算法-学习笔记(13)
  2. accdb原有的数据怎么清除_VBA中利用数组对数据批量处理的方法
  3. 计算机的好处和坏处的英语作文,电脑的利弊英语作文
  4. 大数据之Spark集群安装及简单使用
  5. SET XACT_ABORT各种用法及显示结果
  6. 使用Python操作PowerPoint文件中的表格
  7. SpringMVC架构
  8. 国家二级计算机vb考试题型,2015全国计算机等级考试二级VB题型分析
  9. 汉堡王,你不要给我们AI泼脏水
  10. BZOJ——T 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛
  11. python 方差齐性检验_SPSS正态分布以及方差齐性检验以及Wilcox检验
  12. 迅雷 linux 命令行 版本号,ubuntu下迅雷极速版的安装与使用
  13. 服务器带宽超出限制如何解决?
  14. 如何清除注册表中的Java安装信息
  15. 《Spring+Spring MVC+MyBatis从零开始学》傻瓜式学习笔记
  16. 呆萌ps2显示服务器失败,呆萌PS2模拟器
  17. SPU、SKU、ID,它们都是什么意思,三者又有什么区别和联系呢?
  18. 北卡教堂山计算机专业排名,2019上海软科世界一流学科排名计算机科学与工程专业排名北卡罗来纳大学教堂山分校排名第17...
  19. 网络视频教程(共57个)全实战过程
  20. Web大学生网页作业成品 bootstrap响应式网站开发 基于HTML+CSS+JS+Bootstrap制作火锅美食网站(4页)

热门文章

  1. make:cc 命令未找到的解决方法
  2. HTML5笔记:跨域通讯、多线程、本地存储和多图片上传技术
  3. 基于http live streaming, 使用vlc + mediastreamsegmenter + apache 实现iOS视频直播
  4. 服务器端提交form
  5. ThinkPHP5.0 实现 app支付宝支付功能
  6. BZOJ 1503: [NOI2004]郁闷的出纳员
  7. 洛谷P2732 商店购物 Shopping Offers
  8. 设为首页收藏本站js代码(引自ecshop模板堂(ecmoban.com)
  9. CoreData学习-最好的一片文章
  10. 从医生看病和快餐店点餐理解Node.js的事件驱动