转载地址:https://blog.csdn.net/lemonrabbit1987/article/details/47704679

View类代表用户界面组件的基本构建块。一个View占据屏幕上的一块方形区域,负责该区域的绘图或事件处理。View类是用来创建交互式UI界面的所有部件的基类。

一个窗口的所有View以树形的方式组织。可以通过代码创建和组装View的方式或者通过编写一个或多个XML布局文件的方式搭建View树。View的具体子类可以作为控件或者显示文本、图像或者其他内容。

一旦创建好了View树,可以根据需要执行一下几类共同的操作:

  • 设置属性。例如为一个TextView设置文本属性。除了View定义的属性和方法外,View不同子类具有一些特有的属性和方法。注意:在构建View树时已知的属性可以在XML布局文件中设置。
  • 设置焦点。Android系统会根据用户输入移动焦点。利用requestFocus方法,强制将焦点置于某个特定的视图。
  • 设置listener。允许为View设置一些listener,这样可以在某些感兴趣的事件发生时获得通知。例如所有的View都可以使用setOnFocusChangeListener(android.view.View.OnFocusChangeListener)设置一个用以跟踪该View获得焦点或失去焦点的listener。其他View子类提供了特有的listener。例如一个Button可以设置一个监测是否被点击的listener.
  • 设置可视化。可以通过setVisibility(int)方法设置显示或隐藏View.

View的XML属性

属性名称 相关方法 描述
android:accessibilityLiveRegion setAccessibilityLiveRegion(int) 指示无障碍服务当View改变时是否通知用户
android:alpha setAlpha(float) Viewalpha透明度属性,从0(完全透明)到1(不透明)
android:background setBackgroundResource(int) 一个作为背景的drawable元素
android:clickable setClickable(boolean) 定义这个View是否响应单击事件
android:clickable setClickable(boolean) 定义这个View是否响应单击事件
android:contentDescription setContentDescription(CharSequence) 定义简单描述View内容的文本,通常用于提供无障碍支持
android:drawingCacheQuality setDrawingCacheQuality(int) 定义透明绘画缓冲的质量
android:duplicateParentState   这个属性设置为true,则该View由它的直接父类获得绘制状态(焦点、按下)而不是它自身
android:fadeScrollbars setScrollbarFadingEnabled(boolean) 定义当滚动条无用时是否渐隐
android:fadingEdgeLength getVerticalFadingEdgeLength() 设置View上下黑色阴影边的长度
android:filterTouchesWhenObscured setFilterTouchesWhenObscured(boolean) 指定当该View的窗口被其他可见的窗口遮挡时是否过滤触摸事件
android:fitsSystemWindows setFitsSystemWindows(boolean) 是否根据系统窗口例如状态栏调整View布局
android:focusable setFocusable(boolean) 设置该View是否可以获得焦点
android:focusableInTouchMode setFocusableInTouchMode(boolean) 设置在触摸模式下该View是否可以获得焦点
android:hapticFeedbackEnabled setHapticFeedbackEnabled(boolean) 设置View是否有触觉的反馈(长按等事件支持)
android:id setId(int) 为该View指定一个标识名称,支持通过view.findViewById()Activity.findViewById()方法获取该View
android:importantForAccessibility setImportantForAccessibility(int) 指定该View对无障碍支持的重要度
android:isScrollContainer setScrollContainer(boolean) 指定该View是否作为一个可滚动的容器,支持可以通过改变大小收缩整个窗口以为输入法腾出空间
android:keepScreenOn setKeepScreenOn(boolean) 指定是否该View的窗口在可见的时候总使屏幕常亮
android:layerType setLayerType(int,Paint) 指定在该View背后的层次类型(软件或硬件层)
android:layoutDirection setLayoutDirection(int) 指定布局绘制的方向(左到右,右到左等)
android:longClickable setLongClickable(boolean) 指定该View是否响应长按事件
android:minHeight setMinimumHeight(int) 设定该View的最小高度
android:minWidth setMinimumWidth(int) 设定该View的最小宽度
android:nextFocusDown setNextFocusDownId(int) 当下一个焦点为FOCUS_DOWN时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:nextFocusForward setNextFocusForwardId(int) 当下一个焦点为FOCUS_FORWARD时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:nextFocusLeft setNextFocusLeftId(int) 当下一个焦点为FOCUS_LEFT时,定义获得焦点的下一个View
android:nextFocusRight setNextFocusRightId(int) 当下一个焦点为FOCUS_RIGHT时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:nextFocusUp setNextFocusUpId(int) 当下一个焦点为FOCUS_UP时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:onClick   当该View被单击时触发的方法名称
android:padding setPaddingRelative(int,int,int,int) 以像素值设置四条边的填充(View的边界和内容之间的空间)
android:paddingBottom setPaddingRelative(int,int,int,int) 以像素值设置底边的填充
android:paddingEnd setPaddingRelative(int,int,int,int) 以像素值设置右边的填充
android:paddingLeft setPadding(int,int,int,int) 以像素值设置左边的填充
android:paddingRight setPadding(int,int,int,int) 以像素值设置右边的填充
android:paddingStart setPaddingRelative(int,int,int,int) 以像素值设置左边的填充
android:paddingTop setPaddingRelative(int,int,int,int) 以像素值设置顶边的填充
android:requiresFadingEdge setVerticalFadingEdgeEnabled(boolean) 定义在滚动时哪个边应该被有阴影
android:rotation setRotation(float) View的旋转,以度为单位
android:rotationX setRotationX(float) View沿x轴的旋转,以度为单位
android:rotationY setRotationY(float) View沿y轴的旋转,以度为单位
android:saveEnabled setSaveEnabled(boolean) 若为false,则冻结后该View的所有状态都不会保存
android:scaleX setScaleX(float) View沿x轴的缩放
android:scaleY setScaleY(float) View沿y轴的缩放
android:scrollX   初始水平滚动偏移量,单位像素
android:scrollY   初始竖直滚动偏移量,单位像素
android:scrollbarAlwaysDrawHorizontalTrack   指定水平滚动条是否一直显示
android:scrollbarAlwaysDrawVerticalTrack   指定竖直滚动条是否一直显示
android:scrollbarDefaultDelayBeforeFade setScrollBarDefaultDelayBeforeFade(int) 设置滚动条等待隐藏的时间,单位毫秒
android:scrollbarFadeDuration setScrollBarFadeDuration(int) 设置滚动条隐藏的时间,单位毫秒
android:scrollbarSize setScrollBarSize(int) 设置竖直滚动条的宽度和水平滚动条的高度
android:scrollbarStyle setScrollBarStyle(int) 设置滚动条的样式和位置
android:scrollbarThumbHorizontal   设置水平滚动条的Thumbdrawable元素
android:scrollbarThumbVertical   设置竖直滚动条的Thumb的drawable`元素
android:scrollbarTrackHorizontal   设置水平滚动条的轨道的drawable元素
android:scrollbarTrackVertical   设置竖直滚动条的轨道的drawable元素
android:scrollbars   指定哪些滚动条应该显示
android:soundEffectsEnabled setSoundEffectsEnabled(boolean) 指定View是否开启点击或触摸等特殊事件的声音效果
android:tag   为该View提供一个标记,通过View.getTag()View.findViewwithTag()方法获得该View
android:textAlignment setTextAlignment(int) 定义文本的对齐
android:textDirection setTextDirection(int) 定义文本的方向
android:transformPivotX setPivotX(float) 旋转或缩放依赖的坐标轴点的x坐标
android:transformPivotY setPivotX(float) 旋转或缩放依赖的坐标轴点的y坐标
android:translationX setTranslationX(float) View在x方向上的移动
android:translationY setTranslationY(float) View在y方向上的移动
android:visibility setVisibility(int) 设置该View初始的可见性

View类可以设置的listener

listener类 设置方法 描述
View.OnApplyWindowInsetsListener setOnApplyWindowInsetsListener 接管该ViewWindows Insets应用策略
View.OnClickListener setOnClickListener 当该View被点击时触发的回调
View.OnCreateContextMenuListener setOnCreateContextMenuListener 当该View的上下文菜单正被构建时触发的回调
View.OnDragListener setOnDragListener 当该View接收到Drag事件时触发的回调
View.OnFocusChangeListener setOnFocusChangeListener 当该View焦点变化时触发的回调
View.OnGenericMotionListener setOnGenericMotionListener 当该View接收到一般的移动事件时触发的回调
View.OnKeyListener setOnKeyListener 当该View下硬件键盘被按下时触发的回调
View.OnLongClickListener setOnLongClickListener 当该View被按下并长期保持时触发的回调
View.OnSystemUiVisibilityChangeListener setOnSystemUiVisibilityChangeListener 当系统工具条的可见性改变时触发的回调
View.OnTouchListener setOnTouchListener 当该View接收到touch事件时触发的回调

Android 开发 View的API 转载的更多相关文章

  1. android 开发 View _1_ View的子类们 和 视图坐标系图

    目录: android 开发 View _2_ View的属性动画ObjectAnimator ,动画效果一览 android 开发 View _3_ View的属性动画ValueAnimator a ...

  2. Android开发——View滑动的三种实现方式

    0. 前言   Android开发中,我们常常需要View滑动实现一些绚丽的效果来优化用户体验.一般View的滑动可以用三种方式实现. 转载请注明出处:http://blog.csdn.net/seu ...

  3. Android开发——View滑动冲突解决方案

    0. 前言   我们在Android开发--事件分发机制详解中深入学习了事件分发机制,为我们解决Android开发中的滑动冲突问题做了初步准备.针对滑动冲突这里给出两种解决方案:外部拦截法和内部拦截法 ...

  4. Android 开发 HandlerThread详解 转载

    转载请注明出处:http://blog.csdn.net/vnanyesheshou/article/details/75073307 对于Handler不太懂的可以参考我的这两篇文章: Androi ...

  5. android 开发 View _2_ View的属性动画ObjectAnimator ,动画效果一览

    支持:https://www.cnblogs.com/whoislcj/p/5738478.html translationX的效果: protected void onCreate(Bundle s ...

  6. android 开发 View _14 MotionEvent和事件处理详解,与实践自定义滑动条View

    转载https://blog.csdn.net/huaxun66/article/details/52352469 MotionEvent MotionEvent对象是与用户触摸相关的时间序列,该序列 ...

  7. android 开发 View _11_ xml动画

    请大家尊重原创者版权,转载请标明出处:http://blog.csdn.net/harvic880925/article/details/39996643 谢谢! 一.概述 Android的anima ...

  8. android 开发 View _10_ Path之基本操作

    转载地址:http://www.gcssloop.com/customview/Path_Basic/ 安卓自定义View进阶-Path之基本操作 在上一篇Canvas之图片文字中我们了解了如何使用C ...

  9. Android开发——View绘制过程源码解析(二)

    0. 前言   View的绘制流程从ViewRoot的performTraversals开始,经过measure,layout,draw三个流程,之后就可以在屏幕上看到View了.上一篇已经介绍了Vi ...

随机推荐

  1. 小妖精的完美游戏教室——人工智能,A*算法,启发因子篇

    //================================================================//// Copyright (C) 2017 Team Saluk ...

  2. 3.go语言的转译字符

    go语言的转译字符 \a 匹配响铃符 (相当于 \x07) 注意:正则表达式中不能使用 \b 匹配退格符,因为 \b 被用来匹配单词边界, 可以使用 \x08 表示退格符. \f 匹配换页符 (相当于 ...

  3. C# 切分图片

    public void Slice() { // 图片路径 var file = "F;/aaa.png"; // 水平切分 ; // 纵向切分 ; ; i < horizo ...

  4. [原] inline operator delete & DLL boundary

    很久以前写在百度空间的这篇文章: [百度空间] [原] 全局operator delete重载到DLL 首先,纠正一个词“重载”,operator new/delete是替换(replacement) ...

  5. PythonStudy——Global关键字

    # 作用:将局部的变量提升为全局变量# 1.全局没有同名变量,直接提升局部变量为全局变量# 2.有同名全局变量,就是统一全局与局部的同名变量# -- 如果局部想改变全局变量的值(发生地址的变化),可以 ...

  6. linux下软件安装的几种方式

    linux下软件安装的几种方式(主要有源码安装, rpm安装, yum安装). 一:源码安装 几乎所有的开源软件都支持在Linux下运行,而这些软件一般都以源码形式发放,只需要Linux安装了gcc. ...

  7. linux下目录简介——/SElinux

    一.前言 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统. SELinux 主要由美国 ...

  8. DataFrame对行列的基本操作实战

    1.pandas对行列的基本操作命令: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser ...

  9. 敏捷开发SCM

    敏捷的目标:自组织,提高交付质量和交付速度:敏捷中实现拥抱变化是通过迭代增量实现的:所谓的迭代是循环,循环一种机制和模式,增量则是价值的增加,迭代增量,就是通过每次工作流程的循环实现业务价值的提升:那 ...

  10. 46 Simple Python Exercises (前20道题)

    46 Simple Python Exercises This is version 0.45 of a collection of simple Python exercises construct ...