Android View
在 Android UI 用户界面 中我们知道了 View 是所有的 Android 布局和控件的基类,那么我们就有必要对 View 进行详细的了解了
android.view.View
android.view.View 类是用户界面组件的基本构建块 (就像乐高中的小块)
View 会占用屏幕上的矩形区域,负责绘图和事件处理
View 用于创建交互式 UI 组件 ( Button,TextView 等)
使用 android.view.View
Android APP 一个界面中的所有 view 都排列在一棵树中
我们可以从代码或通过在一个或多个 XML 布局文件中指定视图树来添加视图
有许多特殊的视图子类可用作控件或能够显示文本,图像或其它内容
一旦创建了一个视图树,通常我们可能希望执行几种常见的操作
-
设置属性
例如设置 <TextView> 的文本
<TextView android:text="我用于设置文本" />
注意: View 的每个子类或控件可用的属性和设置它们的方法可能有所不同
-
设置焦点
当用户对某个控件点击时,View 会自动处理焦点问题
如果我们想设置某个 UI 控件获得焦点,可以调用
requestFocus()
方法 -
设置监听器
当用户在某个控件上点击或者输入时,我们可以设置监听器来响应这些操作
例如,我们可以设置一个失去焦点的监听器,以便在 UI 控件获得或失去焦点时得到通知
setOnFocusChangeListener(android.view.View.OnFocusChangeListener)
-
设置可见性
我们可以调用下面的方法对隐藏或显示某个控件
setVisibility(int)
android.view.View XML 属性
下表列出了 android.view.View
所有可设置的 XML 属性
XML 属性 | 说明 |
---|---|
android:alpha | 设置该组件的透明度 |
android:background | 设置该组件的背景颜色 |
android:clickable | 设置该组件是否可以激发单击事件 |
android:contentDescription | 设置该组件的主要描述信息 |
android:drawingCasheQuanlity | 设置该组件所使用的绘制缓存质量 |
android:fadeScrollbars | 设置该组件不使用滚动条时,是否淡出显示滚动条 |
android:fadingEdge | 设置滚动该组件时边界是否使用淡出效果 |
android:fadingEdgeLength | 设置淡出边界长度 |
android:focusable | 设置该组件是否可以得到焦点 |
android:focusableInTouchMode | 设置该组件在触摸模式下是否可以得到焦点 |
android:id | 设置该组件ViewById来获取它 |
android:isScrollContainer | 设置该组件是否可以作为可滚动容器使用 |
android:keepScreenOn | 设置该组件是否会强制手机屏幕一直打开 |
android:longClickable | 设置该组件是否可以响应长单击事件 |
android:minHeight | 设置该组件的最小高度 |
android:minWidth | 设置该组件的最小宽度 |
android:nextFocusDown | 设置焦点在该组件上,且按向下键时获得焦点的组件id |
android:nextFocusRight | 设置焦点在该组件上,且按向右键时获得焦点的组件id |
android:nextFocusLeft | 设置焦点在该组件上,且按向左键时获得焦点的组件id |
android:nextFocusUp | 设置焦点在该组件上,且按向上键时获得焦点的组件id |
android:onClick | 为该组件的单击事件绑定监听器 |
android:padding | 在组件的四边设置填充区域 |
android:paddingLeft | 在组件的左边设置填充区域 |
android:paddingRight | 在组件的右边设置填充区域 |
android:paddingBottom | 在组件的底边设置填充区域 |
android:paddingTop | 在组件的顶边设置填充区域 |
android:rotation | 设置该组件的旋转角度 |
android:rotationX | 设置该组件绕X轴旋转的角度 |
android:rotationY | 设置该组件绕Y轴旋转的角度 |
android:saveEnabled | 设置为false,当该组件被冻结时不会保存其状态 |
android:scaleX | 设置该组件水平方向的缩放比 |
android:scaleY | 设置该组件垂直方向的缩放比 |
android:scrollX | 设置该组件初始化后的水平滚动条偏移 |
android:scrollY | 设置该组件初始化后垂直滚动条偏移 |
android:scrollbarAlwaysDrawHorizontalTrack | 设置该组件是否显示水平滚动条的轨迹 |
android:scrollbarAlwaysDrawVerticalTrack | 设置该组件是否显示垂直滚动条的轨迹 |
android:scrollbarDefaultDelayBeforeFade | 设置滚动条在淡出隐藏之前延迟多少毫秒 |
android:scrollbarFadeDuration | 设置滚动条淡出隐藏需要多少秒 |
android:scrollbarSize | 设置垂直滚动条的宽度和水平滚动条的高度 |
android:scrollbarStyle | 设置滚动条的风格和位置:insideOverlay |
android:scrollThumbHorizontal | 设置该组件水平滚动滑块对对应的Drawable对象 |
android:scrollThumbVertical | 设置该组件垂直滚动滑块对对应的Drawable对象 |
android:scrollTrackbHorizontal | 设置该组件水平滚动轨道对对应的Drawable对象 |
android:scrollTrackbVertical | 设置该组件垂直滚动轨道对对应的Drawable对象 |
android:scrollbar | 设置该组件滚动时显示几个滚动条:none horizontal,vertical |
android:soundEffectsEnabled | 设置该组件被单击时是否使用音效 |
android:tag | 为组件设置一个字符串tag值,可以通过view的getTag 获取字符串,或通过findViewByTag查找该组件 |
android:transformPivotX | 设置该组件旋转时旋转中心的X坐标 |
android:transformPivotY | 设置该组件旋转时旋转中心的Y坐标 |
android:translationX | 设置该组件在x方向上的位移 |
android:translationY | 设置该组件在Y方向上的位移 |
android:visibility | 设置该组件是否可见 |
android:id 属性
每一个 UI 控件都可以有一个与它们相关的 ID
我们一般使用 android:id
属性在 XML 中给 UI 控件定义 ID ,然后在 Java 中通过 R.id.xxx
方法找到这个 UI 控件,比如
在布局文件中定义一个按钮并为其分配一个唯一的ID
<Button android:id="@+id/my_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/my_button_text"/>
在 Activity 的 onCreate() 方法中,找到 Button
Button myButton = findViewById(R.id.my_button);
注意: ID 属性不要求都不一样,但至少要在一个 View 树中不一样,注意不是 XML 文件