API 23 view.View——属性分析

参阅: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

 

已知直接子类 

AnalogClock

ImageView

KeyboardView

MediaRouteButton

ProgressBar

Space

SurfaceView

TextView

TextureView

ViewGroup

ViewStub

 



概述

AndroidUI界面都是由ViewViewGroup及其派生类组合而成的。

其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的子类。

View类是用户接口的基础构件。

View表示屏幕上的一块矩形区域,负责绘制这个区域和事件处理。

 可以说View类是用户接口类中最重要的一个类。

 

View对象是Android平台中用户界面体现的基础单位。

View类是它称为“widgets(工具)”的子类的基础,它们提供了诸如文本输入框和按钮之类的UI对象的完整实现。

ViewGroup类同样为其被称为“Layouts(布局)”的子类奠定了基础,它们提供了象流式布局、表格布局以及相对布局之类的布局架构。

一般来说,开发Android应用程序的UI界面都不会直接使用ViewViewGroup,而是使用这两大基类的派生类


嵌套类】

   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自动应用于呈现级别的视图。

如果这个视图覆盖onSetAlphaint)返回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的填充。如需要填充,请使用setPaddingintintintint

 

设置背景图片,图片来源于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上的内容dstS指绘制输入的内容srcaalpha通道,cRGB各个通道。

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值