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:accessibilityLiveRegionsetAccessibilityLiveRegion(int)指示无障碍服务当View改变时是否通知用户
android:alphasetAlpha(float)Viewalpha透明度属性,从0(完全透明)到1(不透明)
android:backgroundsetBackgroundResource(int)一个作为背景的drawable元素
android:clickablesetClickable(boolean)定义这个View是否响应单击事件
android:clickablesetClickable(boolean)定义这个View是否响应单击事件
android:contentDescriptionsetContentDescription(CharSequence)定义简单描述View内容的文本,通常用于提供无障碍支持
android:drawingCacheQualitysetDrawingCacheQuality(int)定义透明绘画缓冲的质量
android:duplicateParentState这个属性设置为true,则该View由它的直接父类获得绘制状态(焦点、按下)而不是它自身
android:fadeScrollbarssetScrollbarFadingEnabled(boolean)定义当滚动条无用时是否渐隐
android:fadingEdgeLengthgetVerticalFadingEdgeLength()设置View上下黑色阴影边的长度
android:filterTouchesWhenObscuredsetFilterTouchesWhenObscured(boolean)指定当该View的窗口被其他可见的窗口遮挡时是否过滤触摸事件
android:fitsSystemWindowssetFitsSystemWindows(boolean)是否根据系统窗口例如状态栏调整View布局
android:focusablesetFocusable(boolean)设置该View是否可以获得焦点
android:focusableInTouchModesetFocusableInTouchMode(boolean)设置在触摸模式下该View是否可以获得焦点
android:hapticFeedbackEnabledsetHapticFeedbackEnabled(boolean)设置View是否有触觉的反馈(长按等事件支持)
android:idsetId(int)为该View指定一个标识名称,支持通过view.findViewById()Activity.findViewById()方法获取该View
android:importantForAccessibilitysetImportantForAccessibility(int)指定该View对无障碍支持的重要度
android:isScrollContainersetScrollContainer(boolean)指定该View是否作为一个可滚动的容器,支持可以通过改变大小收缩整个窗口以为输入法腾出空间
android:keepScreenOnsetKeepScreenOn(boolean)指定是否该View的窗口在可见的时候总使屏幕常亮
android:layerTypesetLayerType(int,Paint)指定在该View背后的层次类型(软件或硬件层)
android:layoutDirectionsetLayoutDirection(int)指定布局绘制的方向(左到右,右到左等)
android:longClickablesetLongClickable(boolean)指定该View是否响应长按事件
android:minHeightsetMinimumHeight(int)设定该View的最小高度
android:minWidthsetMinimumWidth(int)设定该View的最小宽度
android:nextFocusDownsetNextFocusDownId(int)当下一个焦点为FOCUS_DOWN时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:nextFocusForwardsetNextFocusForwardId(int)当下一个焦点为FOCUS_FORWARD时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:nextFocusLeftsetNextFocusLeftId(int)当下一个焦点为FOCUS_LEFT时,定义获得焦点的下一个View
android:nextFocusRightsetNextFocusRightId(int)当下一个焦点为FOCUS_RIGHT时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:nextFocusUpsetNextFocusUpId(int)当下一个焦点为FOCUS_UP时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:onClick当该View被单击时触发的方法名称
android:paddingsetPaddingRelative(int,int,int,int)以像素值设置四条边的填充(View的边界和内容之间的空间)
android:paddingBottomsetPaddingRelative(int,int,int,int)以像素值设置底边的填充
android:paddingEndsetPaddingRelative(int,int,int,int)以像素值设置右边的填充
android:paddingLeftsetPadding(int,int,int,int)以像素值设置左边的填充
android:paddingRightsetPadding(int,int,int,int)以像素值设置右边的填充
android:paddingStartsetPaddingRelative(int,int,int,int)以像素值设置左边的填充
android:paddingTopsetPaddingRelative(int,int,int,int)以像素值设置顶边的填充
android:requiresFadingEdgesetVerticalFadingEdgeEnabled(boolean)定义在滚动时哪个边应该被有阴影
android:rotationsetRotation(float)View的旋转,以度为单位
android:rotationXsetRotationX(float)View沿x轴的旋转,以度为单位
android:rotationYsetRotationY(float)View沿y轴的旋转,以度为单位
android:saveEnabledsetSaveEnabled(boolean)若为false,则冻结后该View的所有状态都不会保存
android:scaleXsetScaleX(float)View沿x轴的缩放
android:scaleYsetScaleY(float)View沿y轴的缩放
android:scrollX初始水平滚动偏移量,单位像素
android:scrollY初始竖直滚动偏移量,单位像素
android:scrollbarAlwaysDrawHorizontalTrack指定水平滚动条是否一直显示
android:scrollbarAlwaysDrawVerticalTrack指定竖直滚动条是否一直显示
android:scrollbarDefaultDelayBeforeFadesetScrollBarDefaultDelayBeforeFade(int)设置滚动条等待隐藏的时间,单位毫秒
android:scrollbarFadeDurationsetScrollBarFadeDuration(int)设置滚动条隐藏的时间,单位毫秒
android:scrollbarSizesetScrollBarSize(int)设置竖直滚动条的宽度和水平滚动条的高度
android:scrollbarStylesetScrollBarStyle(int)设置滚动条的样式和位置
android:scrollbarThumbHorizontal设置水平滚动条的Thumbdrawable元素
android:scrollbarThumbVertical设置竖直滚动条的Thumb的drawable`元素
android:scrollbarTrackHorizontal设置水平滚动条的轨道的drawable元素
android:scrollbarTrackVertical设置竖直滚动条的轨道的drawable元素
android:scrollbars指定哪些滚动条应该显示
android:soundEffectsEnabledsetSoundEffectsEnabled(boolean)指定View是否开启点击或触摸等特殊事件的声音效果
android:tag为该View提供一个标记,通过View.getTag()View.findViewwithTag()方法获得该View
android:textAlignmentsetTextAlignment(int)定义文本的对齐
android:textDirectionsetTextDirection(int)定义文本的方向
android:transformPivotXsetPivotX(float)旋转或缩放依赖的坐标轴点的x坐标
android:transformPivotYsetPivotX(float)旋转或缩放依赖的坐标轴点的y坐标
android:translationXsetTranslationX(float)View在x方向上的移动
android:translationYsetTranslationY(float)View在y方向上的移动
android:visibilitysetVisibility(int)设置该View初始的可见性

五、View类可以设置的Listener

listener类设置方法描述
View.OnApplyWindowInsetsListenersetOnApplyWindowInsetsListener接管该ViewWindows Insets应用策略
View.OnClickListenersetOnClickListener当该View被点击时触发的回调
View.OnCreateContextMenuListenersetOnCreateContextMenuListener当该View的上下文菜单正被构建时触发的回调
View.OnDragListenersetOnDragListener当该View接收到Drag事件时触发的回调
View.OnFocusChangeListenersetOnFocusChangeListener当该View焦点变化时触发的回调
View.OnGenericMotionListenersetOnGenericMotionListener当该View接收到一般的移动事件时触发的回调
View.OnKeyListenersetOnKeyListener当该View下硬件键盘被按下时触发的回调
View.OnLongClickListenersetOnLongClickListener当该View被按下并长期保持时触发的回调
View.OnSystemUiVisibilityChangeListenersetOnSystemUiVisibilityChangeListener当系统工具条的可见性改变时触发的回调
View.OnTouchListenersetOnTouchListener当该View接收到touch事件时触发的回调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值