FloatingActionButton

介绍

Source Code中的介绍如下:

Floating action buttons are used for a special type of promoted action. They are distinguished
by a circled icon floating above the UI and have special motion behaviors related to morphing,
launching, and the transferring anchor point.

Floating action buttons come in two sizes: the default and the mini. The size can be
controlled with the {@code fabSize} attribute.

As this class descends from {@link ImageView}, you can control the icon which is displayed
via {@link # setImageDrawable(Drawable)}.

The background color of this view defaults to the your theme’s {@code colorAccent}. If you
wish to change this at runtime then you can do so via
{@link # setBackgroundTintList(ColorStateList)}.

@attr ref android.support.design.R.styleable#FloatingActionButton_fabSize

Selector

介绍

A StateListDrawable is a drawable object defined in XML that uses a several different images to represent the same graphic, depending on the state of the object. For example, a Button widget can exist in one of several different states (pressed, focused, or niether) and, using a state list drawable, you can provide a different background image for each state.

You can describe the state list in an XML file. Each graphic is represented by an “item” element inside a single “selector” element. Each “item” uses various attributes to describe the state in which it should be used as the graphic for the drawable.

During each state change, the state list is traversed top to bottom and the first item that matches the current state is used—the selection is not based on the “best match,” but simply the first item that meets the minimum criteria of the state.
翻译:
StateListDrawable 是一种通过XML文件来定义的drawable,使用几个不同的图片来呈现同一个图形,通过object的状态来实现切换。例如,一个Button有几个不同的状态(按压,获取焦点等等),这种情况下,通过使用 state list drawable,你就可以实现在不同的状态下使用不同的背景图片。

你可以在一个XML文件中描述state list。通过在根节点selector下定义一个item元素来添加每个图形。每一各item中使用不同的状态属性来定义不用的drawable。

当每一次状态改变的时候,state list都会从上到下被遍历一遍,第一个与当前state相匹配的item将会被使用—- 这个选择并不是作出“最匹配”结果,而是简单的找到第一个匹配的状态。

selector一般都是用来作为有状态改变的View的背景,以此来达到当用户对View进行操作,导致View状态改变时,作出改变,让用户感知View的状态变化。

Toast

介绍

A toast provides simple feedback about an operation in a small popup. It only fills the amount of

space required for the message and the current activity remains visible and interactive. For

example, navigating away from an email before you send it triggers a “Draft saved” toast to let

you know that you can continue editing later. Toasts automatically disappear after a timeout.

翻译:

Toast以一种小弹框的方式来给予用户反馈,它只需要消息可以显示出来的那小部分空间,同时Activity依

然可见可交互。例如,当你写邮件的时候退出,会触发“草稿已保存”的Toast来让你知道你以后可以继续

编辑这封邮件。Toast会在一段时间后自己消失。

这里写图片描述

Service

介绍

Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件。其他应用组件能够启动Service,并且当用户切换到另外的应用场景,Service将持续在后台运行。另外,一个组件能够绑定到一个service与之交互(IPC机制),例如,一个service可能会处理网络操作,播放音乐,操作文件I/O或者与内容提供者(content provider)交互,所有这些活动都是在后台进行。
Service有两种状态,“启动的”和“绑定”。

使用方法

看下关于Service两张比较经典的图
这里写图片描述

这里写图片描述

ObjectAnimator

简介

ObjectAnimator,是ValueAnimator的子类,支持利用目标视图的属性来实现动画效果。构造ObjectAnimator的时候,将会提取对应的参数来定义动画对象和对象属性。合适的get/set方法是视图实现属性动画的内部机理,动画过程中,系统将通过get/set方法来实现效果,也就是根据一定的规律来为View设置属性。
Animators可以用过资源文件或者是代码定义,当使用资源文件创建的时候,若使用PropertyValuesHolder和Keyframe可以创建出更加复杂的动画,使用PropertyValuesHolder可以实现几个属性的并行变化。
使用Keyframes,可以实现更复杂的动画过程中的属性变化方式。我们可以为每一个Keyframes明确一个fractional value(因子,0-1)来决定在整个动画过程中什么时候到达这个属性值。不设置fractions的时候,这些关键帧将会均匀的分布在整个动画过程中。至于那些没有指定value值的关键帧,将会在动画开始的时候推导出他们的 value。初次之外,我们可以给关键帧添加插值器,整个插值器将会在被设置的这一帧和前一帧动画之间。对于没有设置插值器的关键帧,将会给他们提供一个默认的插值器AccelerateDecelerateInterpolator

TabHost(仿微信底部菜单)

简介

Container for a tabbed window view. This object holds two children: a set of tab labels that the
user clicks to select a specific tab, and a FrameLayout object that displays the contents of that
page. The individual elements are typically controlled using this container object, rather than
setting values on the child elements themselves.
TabHost ,标签视图的容器。容器包含两个孩子节点,一个用来存放一系列的标签,点击来选择对应的窗口;一个是FrameLayout用来存放页面具体内容。这些独立的元素通常用TabHost来控制,而不是在视图内部通过设置值来实现


PreferenceFragment

简介

PreferenceFragment , 展示一系列的Preference条目并且当与用户有交互时,产生的值会自动保存到SharedPreferences中,通过PreferenceManager#getDefaultSharedPreferences(android.content.Context)可以查看对应的SharedPreferences的值。展示的Preferences的风格会随着系统而改变,通过XML文件可以快速的创建Preferences,官方推荐使用Fragment来实现这类功能。

ViewFlipper

简介

View Flipper,是ViewAnimator的子类,而ViewAnimator又是继承自FrameLayout,而FrameLayout就是平时基本上只显示一个子视图的布局,由于FrameLayout下不好确定子视图的位置,所以很多情况下子视图之前存在相互遮挡,这样就造成了很多时候我们基本上只要求FrameLayout显示一个子视图,然后通过某些控制来实现切换。正好,ViewFlipper帮我们实现了这个工作,我们需要做的就是,选择恰当的时机调用其恰当的方法即可

|