美文网首页
自定义控件的原因以及动画的分类

自定义控件的原因以及动画的分类

作者: Starxinchen | 来源:发表于2017-11-21 17:54 被阅读0次

什么是自定义控件?

在 Android 系统中使用系统自带控件重新组合或者自定义类继承 View / ViewGroup 实现特定的 UI效果

为什么要自定义控件?

  1. 系统的某个控件在不同的设备上显示的效果不同,当我们想要让控件在所有设备上显示同样的效果就需要自定义控件。
  2. 整个软件在不同设备上风格统一,例如 QQ、微信的界面在所有的设备上的风格都是一样的。
  3. 系统自带的控件功能有限,需要添加一些功能,或者是自带的控件功能太多,需要删减一部分功能。例如,给 ListView 添加下拉刷新功能,删减 Viewpage 的一些功能。
  4. 自定义控件原则是如果系统控件能够满足需求就不需要自定义控件尽量使用原有控件,因为自定义控件不仅会带来大量的工作而且还会导致许多 Bug 产生
在这里要主要注意弄清楚:
  1. View 和 ViewGroup 的区别。
  2. Android 中事件的传递机制。
  3. View 的原理。

View 和 ViewGroup 的区别

Android 中所有的界面都是由 View 和 ViewGroup 及其派生类组合而成

ViewGroup 是 View 的子类,它是容纳那些控件的容器,他为那些被称作 “Layouts(布局)” 的子类奠定了基础,这些子类提供了线性布局、帧布局、表格布局、相对布局之类的布局架构

View 是所有 UI 组件的基类,是 Android 界面体现的最基础的单位,他是 “Widgets(工具)”的子类的基础,这些子类提供了诸如文本输入框、按钮之类的 UI 对象的完整实现

一般来说 我们使用的 UI 界面不会直接使用 View 或是 ViewGroup 而是使用这两大基类的派生类

动画的分类

Android 中包含三种动画:

View Animation (补间动画)
Drawable Animation (帧动画)
Property Animation (属性动画)

View Animation (补间动画)

基于 View 的渐变动画,它只改变了 View 的绘制效果,而实际的属性并未改变。比如说移动一个按钮的位置,尽管在视图上这个按钮的位置移动了但是如果你点击按钮原来的位置,点击事件仍然生效

在代码中定义该动画可以参考 AnimationSet 类和 Animation 的子类,也可以使用 XML ,在res/anim/ 文件夹中定义 XML 文件。

Drawable Animation(帧动画)

加载一系列的 Drawable 文件夹下的 drawable 资源来绘制动画,这种动画一般来说就是使用它来播放一系列连续的图片从而来欺骗人们的视觉,形成动画的效果,例如实现人物的移动动画
在代码中定义动画帧使用 AnimationDrawable 类;XML文件能更简单的组成动画帧,在res/drawable文件夹,使用<animation-list>采用<item>来定义不同的帧。感觉只能设置的属性是动画间隔时间。

Property Animation(属性动画)

动画的对象除了传统的View对象,还可以是Object对象,动画之后,Object对象的属性值被实实在在的改变了。
Property animation能够通过改变View对象的实际属性来实现View动画。任何时候View属性的改变,View能自动调用invalidate()来试试刷新。

相关文章

  • 自定义控件的原因以及动画的分类

    什么是自定义控件? 在 Android 系统中使用系统自带控件重新组合或者自定义类继承 View / ViewGr...

  • 自制控件3——仿qq侧滑删除

    在自定义控件——初识自定义控件里面,我们已经对自定义控件进行描述和分类。其分类分别是 自制控件 组合控件 拓展控件...

  • 自制控件2 —— 自制控件 仿qq侧滑菜单

    在自定义控件——初识自定义控件里面,我们已经对自定义控件进行描述和分类。其分类分别是 自制控件 组合控件 拓展控件...

  • 拓展控件——拓展TextView

    在先前的文章自定义控件——初识自定义控件中,我们已经对自定义控件的进行了描述和分类,其分类分别是 自制控件 组合控...

  • 自定义加载动画(仿58同城)

    1.demo简介 本demo实现的是加载中间过渡动画,主要涉及自定义控件以及属性动画的使用,本代码没有引用任何资源...

  • Android面试准备

    一、简历准备 1、个人技能 (1)自定义控件、UI设计、常用动画特效 自定义控件 ①为什么要自定义控件? Andr...

  • 自定义控件三部曲

    启航的自定义控件三部曲文章索引 扔物线的自定义View(HenCoder) 动画篇 自定义控件三部曲之动画篇(一)...

  • Android 加载等待控件 ZFProgressHUD

    ZFProgressHUD 定义Android加载等待控件 可以自定义动画图片和效果,以及简单的操作显示 如果你想...

  • 自定义View仿抖音视频加载BufferLineView

    自定义View仿抖音视频加载BufferLineView 自定义视频选帧控件 自定义View 视频截取控件 自定义动画线

  • Android 圆形进度条控件

    自定义控件圆形进度条,支持顶部圆环渐变色,以及动画功能. 效果图 使用方式 核心代码 自定义属性 res/vasu...

网友评论

      本文标题:自定义控件的原因以及动画的分类

      本文链接:https://www.haomeiwen.com/subject/obiwvxtx.html