参阅:http://android.xsoftlab.net/reference/android/view/View.html
public class
View
extends Object
implements Drawable.Callback KeyEvent.Callback AccessibilityEventSource
Added in API level 1
java.lang.Object
↳ android.view.View
已知直接子类
MediaRouteButton
SurfaceView
TextureView
ViewStub
【概述】
Android的UI界面都是由View和ViewGroup及其派生类组合而成的。
其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的子类。
View类是用户接口的基础构件。
View表示屏幕上的一块矩形区域,负责绘制这个区域和事件处理。
可以说View类是用户接口类中最重要的一个类。
View对象是Android平台中用户界面体现的基础单位。
View类是它称为“widgets(工具)”的子类的基础,它们提供了诸如文本输入框和按钮之类的UI对象的完整实现。
ViewGroup类同样为其被称为“Layouts(布局)”的子类奠定了基础,它们提供了象流式布局、表格布局以及相对布局之类的布局架构。
一般来说,开发Android应用程序的UI界面都不会直接使用View和ViewGroup,而是使用这两大基类的派生类。
【嵌套类】
类 View.AccessibilityDelegate API 14
类 View.BaseSavedState API 1
类 View.DragShadowBuilder API 11
类 View.MeasureSpec API 1
接口 View.OnApplyWindowInsetsListener API 20
接口 View.OnAttachStateChangeListener API 12
接口 View.OnClickListener API 1
接口 View.OnContextClickListener API 23
接口 View.OnCreateContextMenuListener API 1
接口 View.OnDragListener API 11
接口 View.OnFocusChangeListener API 1
接口 View.OnGenericMotionListener API 12
接口 View.OnHoverListener API 14
接口 View.OnKeyListener API 1
接口 View.OnLayoutChangeListene API 11
接口 View.OnLongClickListener API 1
接口 View.OnScrollChangeListener API 23
接口 View.OnSystemUiVisibilityChangeListenerAPI 11
接口 View.OnTouchListener API 1
【XML属性】
API 19
android:accessibilityLiveRegion
关联方法:setAccessibilityLiveRegion(int mode)
属性说明:指示在该视图更改时是否应通知用户可访问性服务。辅助功能
可以是整型值(integer),如:100。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
还可以引用一个资源(格式:@[package:]type:name)或者是包含这种类型值的主题属性(格式:?[package][type:]name)。
可以是下列常量值之一:
none 0ACCESSIBILITY_LIVE_REGION_NONE 不通知。默认。
polite 1ACCESSIBILITY_LIVE_REGION_POLITE 通知
assertive 2ACCESSIBILITY_LIVE_REGION_ASSERTIVE 中断语音立即声明
对应的全局属性资源符号是accessibilityLiveRegion。
设置此视图的活动区域模式。这向可访问性服务指示它们是否应当自动通知用户关于视图的内容描述或文本的改变,或者视图的孩子的内容描述或文本(如果适用的话)。
例如,在具有显示“密码不正确”通知的TextView的登录屏幕中,该视图应标记为具有
ACCESSIBILITY_LIVE_REGION_POLITE模式的活动区域。
要停用此数据视图的更改通知,请使用ACCESSIBILITY_LIVE_REGION_NONE。 这是大多数视图的默认活动区域模式。
要指示应通知用户有更改,请使用ACCESSIBILITY_LIVE_REGION_POLITE。
如果视图的更改应中断正在进行的语音并立即通知用户,请使用ACCESSIBILITY_LIVE_REGION_ASSERTIVE。
API 22
android:accessibilityTraversalAfter
关联方法:setAccessibilityTraversalAfter(int afterId)
属性说明:辅助功能。设置在辅助功能遍历中访问此视图的视图的ID。 屏幕阅读器必须在此视图的内容之前访问另一视图的内容。
对应的全局属性资源符号是accessibilityTraversalAfter。
例如,如果视图B被设置为在视图A之后,则屏幕阅读器将在遍历B的整个内容之前遍历A的整个内容,不论其正在使用什么遍历策略。
没有指定前/后关系的视图按屏幕阅读器确定的顺序遍历。
将此视图设置为对辅助功能不重要的视图之后,或者此视图对于辅助功能不重要。则此属性将不起作用,因为屏幕阅读器会忽略不重要的视图。
API 22
android:accessibilityTraversalBefore
关联方法:setAccessibilityTraversalBefore(int beforeId)
属性说明:辅助功能。设置在辅助功能遍历中访问此视图的视图的ID。 屏幕阅读器必须在此视图的内容之前访问此视图的内容。
对应的全局属性资源符号是accessibilityTraversalAfter。
例如,如果视图B被设置为在视图A之前,则屏幕阅读器将在遍历A的整个内容之前遍历B的整个内容,不论其正在使用什么遍历策略。
没有指定前/后关系的视图按屏幕阅读器确定的顺序遍历。
将此视图设置为对辅助功能不重要的视图之后,或者此视图对于辅助功能不重要。则此属性将不起作用,因为屏幕阅读器会忽略不重要的视图。
API 11
android:alpha
关联方法:setAlpha(float alpha)
属性说明:视图透明度,值在0-1之间。0为完全透明,1为完全不透明。
必须是浮点值(float),如:1.2。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是alpha。
注意:将alpha设置为半透明值(0 <alpha <1)可能会产生显着的性能影响,特别是对于大视图。最好使用alpha属性保守和瞬态,如在衰落动画的情况。
对于具有频繁变化的alpha的视图,例如在渐变动画期间,强烈建议出于性能原因,覆盖hasOverlappingRendering()以返回false(如果适当),或者在动画持续时间的视图上设置图层类型。在版本M及以下版本中,使用alpha渲染未分层视图的默认路径可能会增加渲染成本的多毫秒,即使对于简单或小视图也是如此。从M开始,LAYER_TYPE_HARDWARE自动应用于呈现级别的视图。
如果这个视图覆盖onSetAlpha(int)返回true,那么这个视图负责应用不透明度本身。
在版本LOLLIPOP_MR1及以下版本中,请注意,如果视图由图层支持并与图层油漆相关联,那么将Alpha值设置为小于1.0将取代图层油漆的Alpha值。
从M开始,设置一个半透明的alpha值将剪辑视图到其边界,除非视图从hasOverlappingRendering()返回false。
API 1
android:background
关联方法:setBackgroundResource(int resid)
属性说明:设置视图背景。可以是完整的drawable资源(比如png图、.9图、xml描述状态列表等等)或者是纯色。
可以引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
可以是颜色值(color),格式”#rgb”、”#argb”、”#rrggbb”、”#aarrggbb”。
对应的全局属性资源符号是background。
setBackgroundResource (int resid)API 1
将背景设置为给定资源。资源应该引用一个Drawable对象或0来删除背景。
setBackgroundColor (int color)API 1
给视图设置背景色。
setBackgroundDrawable (Drawable background)API 1-API16
API 16弃用,使用setBackground()代替
setBackground(Drawable background)API 16
给视图设置背景,或删除背景。
如果背景有填充,此视图的填充设置为背景的填充。
但是,当删除背景时,不会触摸此view的填充。如需要填充,请使用setPadding(int,int,int,int)
设置背景图片,图片来源于drawable;
.setBackgroundDrawable(getResources().getDrawable(R.drawable.a));
转换字符串为int(颜色);
.deleteFilghtBg.setBackgroundColor(Color.parseColor("#FF0000"));
可以通过以下两种方法设置背景为透明:"@android:color/transparent"和"@null"。注意TextView默认是透明的,不用写此属性,但是Buttom/ImageButton/ImageView想透明的话就得写这个属性了。
API 21
android:backgroundTint
关联方法:setBackgroundTintList(ColorStateList tint)
属性说明:将背景渲染成指定的颜色。即设置背景色调。
必须是颜色值(color),格式”#rgb”、”#argb”、”#rrggbb”、”#aarrggbb”。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是backgroundTint。
tint可以为null以清除色调。
如果view没有背景,设置backgroudTint无效。
getResource().getColorStateList(R.color.色值);
ColorStateList对象可以在XML中定义,像color一样使用,它能根据它应用到的View对象的状态实时改变颜色。
<selector xmlns:android="http://schemas.android.com/apk/res/android" >//根元素。包含一个或多个<item>元素。
<item>定制特定状态的color
android:color16进制颜色,由RGB值指定,可带Alpha
#RGB#ARGB#RRGGBB#AARRGGBB
android:state_pressed 按下状态
android:state_focused 聚焦状态
android:state_selected 选中状态
android:state_active
android:state_checkable 可勾选状态
android:state_checked 勾选状态
android:state_enabled 可用状态(能接受触摸/点击事件)
android:state_window_focused应用程序窗口有焦点时使用(应用程序在前台)
注意:记住一点,StateList中第一个匹配当前状态的item会被使用。因此,如果第一个item没有任何状态特性的话,那么它将每次都被使用,这也是为什么默认的值必须总是在最后。
API 21
android:backgroundTintMode
关联方法:setBackgroundTintMode(PorterDuff.Mode tintMode)
属性说明:设置背景渲染的模式。设置背景色调的混合模式。默认模式src_in。
必须是下列常量之一:D指原本在Canvas上的内容dst,S指绘制输入的内容src,a指alpha通道,c指RGB各个通道。
src_over 3 [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc]
src_in 5 [Sa * Da, Sc * Da]
src_atop 9 [Da, Sc * Da + (1 - Sa) * Dc]
multiply 14 [Sa * Da, Sc * Dc]
screen 15 [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]
add 16 Saturate(S + D)
tintMode可以为null以清除色调。
它对应的全局资源符号是backgroundTintMode。
PorterDuff.Mode.CLEAR 0不绘制 [0, 0]
PorterDuff.Mode.SRC 1显示上层绘制 [Sa, Sc]
PorterDuff.Mode.DST 2显示下层绘制 [Da, Dc]
PorterDuff.Mode.SRC_OVER 3上下层都显示,上层居上显示 [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc]
PorterDuff.Mode.DST_OVER 4上下层都显示,下层居上显示 [Sa + (1 - Sa)*Da, Rc = Dc + (1 - Da)*Sc]
PorterDuff.Mode.SRC_IN 5取上层绘制交集 [Sa * Da, Sc * Da]
PorterDuff.Mode.DST_IN 6取下层绘制交集 [Sa * Da, Sa * Dc]
PorterDuff.Mode.SRC_OUT 7取上层绘制非交集 [Sa * (1 - Da), Sc * (1 - Da)]
PorterDuff.Mode.DST_OUT 8 取下层绘制非交集 [Da * (1 - Sa), Dc * (1 - Sa)]
PorterDuff.Mode.SRC_ATOP 9 取上层交集部分与下层非交集部分 [Sa, Sa * Dc + Sc * (1 - Da)]
PorterDuff.Mode.DST_ATOP 10 取下层交集部分与上层非交集部分 [Da, Sc * Da + (1 - Sa) * Dc]
PorterDuff.Mode.XOR 11去除交集部分 [Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + (1 - Sa) * Dc]
PorterDuff.Mode.DARKEN 12取两层全部区域,交集部分加深 [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1