Android开发中_View控件及属性方法的使用记录

目录

一、前言

二、View类

三、部分API的使用记录

1、与父布局共享状态

2、设置View不会显示到状态栏与导航栏这些系统窗口上

3、触摸模式下可以设置焦点

4、设置默认焦点

6、焦点跳转

7、显示层高度

8、偏移量高度

9、透明度

10、缩放倍数

11、偏移量移动位置

12、旋转角度

13、View的按下声效

四、View类的XML属性

五、View类可以设置的Listener


一、前言

本文主要记录一些Android开发中,基础View的API使用及描述。

二、View类

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.

三、部分API的使用记录

1、与父布局共享状态

这是一个容易被忽视但是十分重要的属性。 很多人从未了解过有这种属性,从而会走上自定义触控的方式,来实现一个布局下的所有子View的点击效果与触控效果。 实际上并不需要,只需要添加这个属性,在父布局被点击或者焦点选中后,让下面的子View都共享状态。

android:duplicateParentState="true"

2、设置View不会显示到状态栏与导航栏这些系统窗口上

<!-- 用于根据状态栏等系统窗口调整视图布局。如果为 true,则调整此视图的填充以为系统窗口留出空间。仅当此视图在非嵌入式活动中时才会生效 -->
<attr name="fitsSystemWindows" format="boolean" />

3、触摸模式下可以设置焦点

这里的焦点指的是遥控器或者键盘操作的时候的View选中焦点。

控制视图是否可以在触摸模式下获得焦点的布尔值。如果对于一个视图是这样,则该视图可以在单击时获得焦点,并且如果单击另一个未将此属性设置为 true 的视图,则可以保持焦点。

android:focusableInTouchMode="true"

4、设置默认焦点

<!-- 此视图是否为默认焦点视图。每个键盘导航集群只有一个视图可以将此属性设置为 true。 -->
<attr name="focusedByDefault" format="boolean" />

5、焦点选中高亮

<!-- 此视图是否应在获得焦点但未在其背景中定义时使用默认焦点突出显示. -->
<attr name="defaultFocusHighlightEnabled" format="boolean" />

6、焦点跳转

如果你在开发TV的应用,需要设置遥控器选中的焦点,一般情况下不需要使用这些焦点跳转位置,因为Android系统会自动检索到下一个需要跳转的焦点。只有一些我们特别要求指定某个跳转焦点位置的情况下,才会使用到它们。

<!-- 当下一个焦点是时,定义下一个要关注的视图。如果引用引用的视图不存在或属于不可见的层次结构的一部分,则访问引用时将产生 {@link java.lang.RuntimeException}。-->
        <attr name="nextFocusLeft" format="reference"/>

        <attr name="nextFocusRight" format="reference"/>
   
        <attr name="nextFocusUp" format="reference"/>

        <attr name="nextFocusDown" format="reference"/>

        <attr name="nextFocusForward" format="reference"/>

7、显示层高度

可以让View显示到其他View上层或者下层。

android:elevation="100dp"

8、偏移量高度

同上“第7项”的显示层高度,只不过是偏移量。

android:translationZ="100dp"

9、透明度

android:alpha="0.5"

10、缩放倍数

android:scaleX="1.5"
android:scaleY="1.5"

11、偏移量移动位置

android:translationY="100dp"
android:translationX="100dp"

12、旋转角度

xml文件中设置:

android:rotation="90"
android:rotationX="0.5"
android:rotationY="0.5"

代码中设置:

setRotation(float类型数据);
setRotationX(float类型数据);
setRotationY(float类型数据);

13、View的按下声效

xml文件中设置:

android:soundEffectsEnabled="true"

代码中设置:

view.playSoundEffect(SoundEffectConstants.CLICK);

四、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事件时触发的回调

猜你喜欢

转载自blog.csdn.net/IT666DHW/article/details/131846443