首页 > 代码库 > android View 详解
android View 详解
android.View.View(即View)类是以矩形的方式显示在屏幕上,View是用户界面控件的基础。View的继承层次关系如下图:
可以看到所有的界面控件都是View的子类。简单证实一下,每当你用findViewByIds(R.id.xx)时总要将其强转,因为该方法返回的是一个View实例,有木有!!!其中不得不提View的subClass ViewGroup。Android系统中的所有UI类都是建立在View和ViewGroup这两个类的基础上的。所有View的子类成为”Widget”,所有ViewGroup的子类成为”Layout”。View和ViewGroup之间采用了组合设计模式,可以使得“部分-整体”同等对待。ViewGroup作为布局容器类的最上层,布局容器里面又可以有View和ViewGroup。通过这种方式,我们获得了UI界面的组合方式。
ViewGroup的子类用不同的方式来管理容器中View控件的摆放位置以及显示方式;但是,对于view控件具体摆放到什么位置,以及大小等属性则需要每个布局类的内部类LayoutParams来进行处理,该类是ViewGroup的内部类,有该类的子类具体实现LayoutParams类。
可以看到android中所有的UI控件都是View的子类,所以你可以通过继承View类来实现自定义控件,例如之前博客中提到的圆形进度条就是一个例子。注意。此时你需要重载View的构造函数。View的构造函数有三个,但常用的是第一个和第二个,比较简单,有需要的可以查下文档。
一.而动态创建View和ViewGroup一般有以下2种方式可以实现。
1.每创建一个UI控件就添加到布局中,但是这种方式有个缺点,当你要动态添加的按钮过多时,就会显得过于麻烦。
ViewParent viewParent = this.findViewById(R.id.text1).getParent();
RelativeLayout relativeLayout = (RelativeLayout) viewParent;
Button button = new Button(this);
button.setText("Fuck");
relativeLayout.addView(button,300,200);button,100,100);
2.从一个XML文件中创建控件,再添加到布局中。
LayoutInflater layoutInflater = this.getLayoutInflater();
layoutInflater.inflate(R.layout.mybviewlayout, (ViewGroup)this.findViewById(R.layout.activity_main));
在第二句代码中关联了一个布局文件mybviewlayout.xml,在这里使用inflate方法将这个布局文件装载到内存中后被转化为View对象,,然后将这个View对象添加到activity_main.xml布局文件中。
二.常用布局
1.LinearLayout
相信大家对LinearLayout一定不会陌生吧,这里有一点需要注意:Linearlayout 不允许精准的控制它子view的关系,子view只能简单的一个接一个排成行。更好的方法是使用relativelayout.
2.RelativeLayout
该布局下我们可以非常灵活的来控制UI控件的摆放位置,在现实生活中我们最常用的应该是就是RelativeLayout与LinearLayout的结合使用了吧。这里就需要注意一下view的各种layout_XXX,margin_XX,等属性的使用了,他会帮你定制非常灵活的布局文件。我会在文章末尾附上。
3.TableLayout
TableLayout是用表格来进行UI界面的布局,个人感觉不太常用,使用的标签是,而且TableLayout的属性是垂直排列,若想水平排列则应该使用TableRow。其他就不过多介绍了。
4.FrameLayout和AbsoluteLayout
FrameLayout和AbsoluteLayout分别是框架布局和绝对布局。frameLayout中UI控件默认显示在屏幕左上角,我记得Web浏览器中也是这样的,可用于图片扩散展示之类的。而AbsoluteLayout的用途相比看看名称就知道了,就我个人而言,目前并未使用到。
最后,就附上一些常用属性的说明吧,希望对大家有用。
android:alpha 关联方法: setAlpha(float) 属性说明: 视图透明度,值在0-1之间。0为完全透明,1为完全不透明。
android:background 关联方法: setBackgroundResource(int) 属性说明: 视图背景
android:clickable 关联方法: setClickable(boolean) 属性说明: 视图是否可点击
android:contentDescription 关联方法: setContentDescription(CharSequence) 属性说明: 设置View的备注说明,作为一种辅助功能提供,为一些没有文字描述的View提供说明
android:drawingCacheQuality 关联方法: setDrawingCacheQuality(int) 属性说明: "设置绘图时半透明质量。有可以取以下3个值 auto——默认,由框架决定 high——高质量,使用较高的颜色深度,消耗更多的内存 low——低质量,使用较低的颜色深度,但是用更少的内存"
android:duplicateParentState 关联方法: 属性说明: 如果设置此属性,将直接从父容器中获取绘图状态(光标,按下等)
android:fadeScrollbars 关联方法: setScrollbarFadingEnabled(boolean) 属性说明: 定义在ScrollBar没有使用时,是否褪色。
android:fadingEdgeLength 关联方法: getVerticalFadingEdgeLength() 属性说明: 设置边框渐变的长度。
android:filterTouchesWhenObscured 关联方法: setFilterTouchesWhenObscured(boolean) 属性说明: view所在窗口被其它可见窗口遮住时,是否过滤触摸事件。
android:fitsSystemWindows 关联方法: setFitsSystemWindows(boolean) 属性说明: 设置布局调整时是否考虑系统窗口(如状态栏)
android:focusable 关联方法: setFocusable(boolean) 属性说明: 设置是否获得焦点。若有requestFocus()被调用时,后者优先处理。注意在表单中想设置某一个如EditText获取焦点,光设置这个是不行的,需要将这个EditText前面的focusable都设置为false才行。在Touch模式下获取焦点需要设置focusableInTouchMode为true。
android:focusableInTouchMode 关联方法: setFocusableInTouchMode(boolean) 属性说明: 设置在Touch模式下View是否能取得焦点。
android:hapticFeedbackEnabled 关联方法: setHapticFeedbackEnabled(boolean) 属性说明: 是否启用触摸反馈,启用后就是在点击等操作时会有震动等反馈效果
android:id 关联方法: setId(int) 属性说明: 给当前View设置一个在当前layout.xml中的唯一编号,可以通过调用View.findViewById() 或Activity.findViewById()根据这个编号查找到对应的View。不同的layout.xml之间定义相同的id不会冲突。
android:importantForAccessibility 关联方法: setImportantForAccessibility(int) 属性说明: 设置可达性的重要性
android:isScrollContainer 关联方法: setScrollContainer(boolean) 属性说明: 设置当前View为滚动容器。这里没有测试出效果来,ListView/ GridView/ ScrollView根本就不用设置这个属性,而EdidText设置android:scrollbars也能出滚动条
android:keepScreenOn 关联方法: setKeepScreenOn(boolean) 属性说明: 视图在可见的情况下是否保持唤醒状态。
android:layerType 关联方法: setLayerType(int,Paint) 属性说明: "设置指定层的类型,可以取以下3个值: none——不指定 software——软件层。 hardware——硬件层。使用硬件加速。"
android:layoutDirection 关联方法: setLayoutDirection(int) 属性说明: 定义布局图纸的方向
android:longClickable 关联方法: setLongClickable(boolean) 属性说明: 是否响应长点击事件
android:minHeight 关联方法: setMinimumHeight(int) 属性说明: 设置视图最小高度
android:minWidth 关联方法: setMinimumWidth(int) 属性说明: 设置视图最小宽度
android:nextFocusDown 关联方法: setNextFocusDownId(int) 属性说明: 向下移动焦点时,下一个获取焦点的view的id
android:nextFocusForward 关联方法: setNextFocusForwardId(int) 属性说明: 下一个获取焦点的view的id
android:nextFocusLeft 关联方法: setNextFocusLeftId(int) 属性说明: 向左移动焦点时,下一个获取焦点的view的id
android:nextFocusRight 关联方法: setNextFocusRightId(int) 属性说明: 向右移动焦点时,下一个获取焦点的view的id
android:nextFocusUp 关联方法: setNextFocusUpId(int) 属性说明: 向上移动焦点时,下一个获取焦点的view的id
android:onClick 关联方法: 属性说明: 点击时,要调用的方法的名称。
android:padding 关联方法: setPaddingRelative(int,int,int,int) 属性说明: 设置上下左右的边距
android:paddingBottom 关联方法: setPaddingRelative(int,int,int,int) 属性说明: 下边距
android:paddingEnd 关联方法: setPaddingRelative(int,int,int,int) 属性说明: 与android:paddingRight相同
android:paddingLeft 关联方法: setPadding(int,int,int,int) 属性说明: 左边距
android:paddingRight 关联方法: setPadding(int,int,int,int) 属性说明: 右边距
android:paddingStart 关联方法: setPaddingRelative(int,int,int,int) 属性说明: android:paddingLeft相同
android:paddingTop 关联方法: setPaddingRelative(int,int,int,int) 属性说明: 上边距
android:requiresFadingEdge 关联方法: setVerticalFadingEdgeEnabled(boolean) 属性说明: 定义滚动时边缘是否褪色
android:rotation 关联方法: setRotation(float) 属性说明: 旋转度数
android:rotationX 关联方法: setRotationX(float) 属性说明: 水平旋转度数
android:rotationY 关联方法: setRotationY(float) 属性说明: 竖直旋转度数
android:saveEnabled 关联方法: setSaveEnabled(boolean) 属性说明: 在配置改变等情况出现时是否保存view的状态数据。如果你的view有id,那默认系统就会帮你保存。
android:scaleX 关联方法: setScaleX(float) 属性说明: 水平方向缩放比例
android:scaleY 关联方法: setScaleY(float) 属性说明: 竖直方向缩放比例
android:scrollX 关联方法: 属性说明: x方向的滚动偏移。即在水平方向滚动了多少距离
android:scrollY 关联方法: 属性说明: y方向的滚动偏移。即在竖直方向滚动了多少距离
android:scrollbarAlwaysDrawHorizontalTrack 关联方法: 属性说明: 是否总是绘制水平滚动条的滚动轨道
android:scrollbarAlwaysDrawVerticalTrack 关联方法: 属性说明: 是否总是绘制竖直滚动条的滚动轨道
android:scrollbarDefaultDelayBeforeFade 关联方法: setScrollBarDefaultDelayBeforeFade(int) 属性说明: 滚动条在n毫秒后开始淡出。
android:scrollbarFadeDuration 关联方法: setScrollBarFadeDuration(int) 属性说明: 滚动条用多长时间淡出完毕。
android:scrollbarSize 关联方法: setScrollBarSize(int) 属性说明: 设置滚动条的尺寸。垂直滚动条的宽度、水平滚动条的高度
android:scrollbarStyle 关联方法: setScrollBarStyle(int) 属性说明: "滚动条的风格。共4组值: insideOverlay——内贴图 insideInset——内插图 outsideOverlay——外贴图 outsideInset——外插图。 inside就是滚动条在绘制在padding以内;outside就是不需要绘制在padding内(即view的边界处);Overlay是贴图,就是直接覆盖在内容的上方,这样内容可能会显示到滚动条下方去;Inset是插图,就是会在对应padding上加上滚动条的宽度,以不让内容显示到滚动条下面去。"
android:scrollbarThumbHorizontal 关联方法: 属性说明: 水平滚动块的drawable对象
android:scrollbarThumbVertical 关联方法: 属性说明: 竖直滚动块的drawable对象
android:scrollbarTrackHorizontal 关联方法: 属性说明: 水平滚动条滚动轨道的drawable对象
android:scrollbarTrackVertical 关联方法: 属性说明: 竖直滚动条滚动轨道的drawable对象
android:scrollbars 关联方法: 属性说明: "设置可显示的滚动条。有3个取值: none——不显示滚动条 horizontal——显示水平滚动条 vertical——显示竖直滚动条"
android:soundEffectsEnabled 关联方法: setSoundEffectsEnabled(boolean) 属性说明: 点击或触摸该view时,是否需要有声音效果
android:tag 关联方法: 属性说明: string标识。类似id,id是整数标识。
android:textAlignment 关联方法: setTextAlignment(int) 属性说明: 设置文本的显示方式。
android:textDirection 关联方法: setTextDirection(int) 属性说明: 设置文本的显示方向。
android:transformPivotX 关联方法: setPivotX(float) 属性说明: 水平方向偏转量
android:transformPivotY 关联方法: setPivotY(float) 属性说明: 竖直方向偏转量
android:translationX 关联方法: setTranslationX(float) 属性说明: 水平方向的移动距离
android:translationY 关联方法: setTranslationY(float) 属性说明: 竖直方向的移动距离
android:visibility 关联方法: setVisibility(int) 属性说明: "view的可见性。有3个取值: gone——不可见,同时不占用view的空间; invisible——不可见,但占用view的空间; visible——可见"
TextView属性说明
下面对TextView的属性进行说明 android:autoLink 关联方法: setAutoLinkMask(int) 属性说明: 设置是否“当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接”。可选值(none/web/email/phone/map/all)
android:autoText 关联方法: setKeyListener(KeyListener) 属性说明: 如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。
android:bufferType 关联方法: setText(CharSequence,TextView.BufferType) 属性说明: 指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,也就是说getText后可调用append方法设置文本内容。
android:capitalize 关联方法: setKeyListener(KeyListener) 属性说明: 设置自动大写属性。比如设置为2,自动大写单词首字符;设置为1,自动大写每句话的首字母等等。
android:cursorVisible 关联方法: setCursorVisible(boolean) 属性说明: 设定光标为显示/隐藏,默认显示。
android:digits 关联方法: setKeyListener(KeyListener) 属性说明: 设置允许输入哪些字符。如“1234567890.+-*/%\n()”
android:drawableBottom 关联方法: setCompoundDrawablesWithIntrinsicBounds(int,int,int,int) 属性说明: 在text的下方输出一个drawable。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。
android:drawableEnd 关联方法: setCompoundDrawablesRelativeWithIntrinsicBounds(int,int,int,int) 属性说明: 在文本结尾处显示drawable对象。它的值可以是其它资源的引用,比如,"@[+][package:]type:name"或者"?[package:][type:]name";也可以是颜色值,如"#rgb", "#argb", "#rrggbb", or "#aarrggbb"。
android:drawableLeft 关联方法: setCompoundDrawablesWithIntrinsicBounds(int,int,int,int) 属性说明: 在text的左边输出一个drawable。
android:drawablePadding 关联方法: setCompoundDrawablePadding(int) 属性说明: 设置text与drawable的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。
android:drawableRight 关联方法: setCompoundDrawablesWithIntrinsicBounds(int,int,int,int) 属性说明: 在text的右边输出一个drawable。
android:drawableStart 关联方法: setCompoundDrawablesRelativeWithIntrinsicBounds(int,int,int,int) 属性说明: 在文本开始处显示drawable对象。它的值可以是其它资源的引用,比如,"@[+][package:]type:name"或者"?[package:][type:]name";也可以是颜色值,如"#rgb", "#argb", "#rrggbb", or "#aarrggbb"。
android:drawableTop 关联方法: setCompoundDrawablesWithIntrinsicBounds(int,int,int,int) 属性说明: 在text的正上方输出一个drawable。
android:editable 关联方法: 属性说明: 设置是否可编辑。这里无效果,在EditView中才有效果。
android:editorExtras 关联方法: setInputExtras(int) 属性说明: 设置文本的额外的输入数据。在EditView中才有效果。
android:ellipsize 关联方法: setEllipsize(TextUtils.TruncateAt) 属性说明: 设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)
android:ems 关联方法: setEms(int) 属性说明: 设置TextView的宽度为N个字符的宽度。
android:fontFamily 关联方法: setTypeface(Typeface) 属性说明: 文本的字形体系。
android:freezesText 关联方法: setFreezesText(boolean) 属性说明: 设置保存文本的内容以及光标的位置。
android:gravity 关联方法: setGravity(int) 属性说明: 设置文本位置,如设置成“center”,文本将居中显示。
android:height 关联方法: setHeight(int) 属性说明: 设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)
android:hint 关联方法: setHint(int) 属性说明: Text为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。
android:imeActionId 关联方法: setImeActionLabel(CharSequence,int) 属性说明: 设置IME动作ID。
android:imeActionLabel 关联方法: setImeActionLabel(CharSequence,int) 属性说明: 设置IME动作标签。在EditView再做说明。
android:imeOptions 关联方法: setImeOptions(int) 属性说明: 附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。
android:includeFontPadding 关联方法: setIncludeFontPadding(boolean) 属性说明: 设置文本是否包含顶部和底部额外空白,默认为true。
android:inputMethod 关联方法: setKeyListener(KeyListener) 属性说明: 为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。
android:inputType 关联方法: setRawInputType(int) 属性说明: 设置文本的类型,用于帮助输入法显示合适的键盘类型。在EditView中再详细说明,这里无效果。
android:lineSpacingExtra 关联方法: setLineSpacing(float,float) 属性说明: 设置行间距。
android:lineSpacingMultiplier 关联方法: setLineSpacing(float,float) 属性说明: 设置行间距的倍数。如”1.2”
android:lines 关联方法: setLines(int) 属性说明: 设置文本的行数,设置两行就显示两行,即使第二行没有数据。
android:linksClickable 关联方法: setLinksClickable(boolean) 属性说明: 设置链接是否点击连接,即使设置了autoLink。
android:marqueeRepeatLimit 关联方法: setMarqueeRepeatLimit(int) 属性说明: 在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。
android:maxEms 关联方法: setMaxEms(int) 属性说明: 设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。
android:maxHeight 关联方法: setMaxHeight(int) 属性说明: 设置文本区域的最大高度
android:maxLength 关联方法: setFilters(InputFilter) 属性说明: 限制显示的文本长度,超出部分不显示。
android:maxLines 关联方法: setMaxLines(int) 属性说明: 设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。
android:maxWidth 关联方法: setMaxWidth(int) 属性说明: 设置文本区域的最大宽度
android:minEms 关联方法: setMinEms(int) 属性说明: 设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。
android:minHeight 关联方法: setMinHeight(int) 属性说明: 设置文本区域的最小高度
android:minLines 关联方法: setMinLines(int) 属性说明: 设置文本的最小行数,与lines类似。
android:minWidth 关联方法: setMinWidth(int) 属性说明: 设置文本区域的最小宽度
android:numeric 关联方法: setKeyListener(KeyListener) 属性说明: 如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。
android:password 关联方法: setTransformationMethod(TransformationMethod) 属性说明: 以小点”.”显示文本
android:phoneNumber 关联方法: setKeyListener(KeyListener) 属性说明: 设置为电话号码的输入方式。
android:privateImeOptions 关联方法: setPrivateImeOptions(String) 属性说明: 设置输入法选项,在EditText中才有作用。
android:scrollHorizontally 关联方法: setHorizontallyScrolling(boolean) 属性说明: 设置文本超出TextView的宽度的情况下,是否出现横拉条。
android:selectAllOnFocus 关联方法: setSelectAllOnFocus(boolean) 属性说明: 如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。TextView中设置后无效果。
android:shadowColor 关联方法: setShadowLayer(float,float,float,int) 属性说明: 指定文本阴影的颜色,需要与shadowRadius一起使用。
android:shadowDx 关联方法: setShadowLayer(float,float,float,int) 属性说明: 设置阴影横向坐标开始位置。
android:shadowDy 关联方法: setShadowLayer(float,float,float,int) 属性说明: 设置阴影纵向坐标开始位置。
android:shadowRadius 关联方法: setShadowLayer(float,float,float,int) 属性说明: 设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。
android:singleLine 关联方法: setTransformationMethod(TransformationMethod) 属性说明: 设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行
android:text 关联方法: setText(CharSequence,TextView.BufferType) 属性说明: 设置显示文本.
android:textAllCaps 关联方法: setAllCaps(boolean) 属性说明: 设置文本全为大写。值为"true"或"false"。
android:textAppearance 关联方法: 属性说明: 设置文字外观。如“?android:attr/textAppearanceLargeInverse
android:textColor 关联方法: setTextColor(int) 属性说明: 设置文本颜色
android:textColorHighlight 关联方法: setHighlightColor(int) 属性说明: 被选中文字的底色,默认为蓝色
android:textColorHint 关联方法: setHintTextColor(int) 属性说明: 设置提示信息文字的颜色,默认为灰色。与hint一起使用。
android:textColorLink 关联方法: setLinkTextColor(int) 属性说明: 文字链接的颜色.
android:textIsSelectable 关联方法: isTextSelectable() 属性说明: 设置非编辑文本可否被选择。值为"true"或"false"。
android:textScaleX 关联方法: setTextScaleX(float) 属性说明: 设置文字之间间隔,默认为1.0f。
android:textSize 关联方法: setTextSize(int,float) 属性说明: 设置文字大小,推荐度量单位”sp”,如”15sp”
android:textStyle 关联方法: setTypeface(Typeface) 属性说明: 设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开
android:typeface 关联方法: setTypeface(Typeface) 属性说明: 设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]
android:width 关联方法: setWidth(int) 属性说明: 设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)。
android:fadingEdgeLength
设置淡入淡出边缘的长度,可以接受大小值的单位是:px、dp、sp、in、mm,也可以参考大小值资源
android:fitsSystemWindows
是否适合系统窗体,取值为true或false。该属性只对不是子组件的组件有效
android:focusable
是否可以获取焦点,取值true或false
android:focusableInTouchMode
是否可以在触摸模式下获取焦点,true或false
android:hapticFeedbackEnabled
是否允许触摸反馈效果,true或false
android:id
提供该组件的标识名,可以借助Activity或View实例的findViewById方法通过id获取对应的组件实例对象,其属性值的形式为:android:id=”@+id/id”
android:isScrollContainer
设置该组件是否设置为滚动条容器,true或false
android:keepScreenOn
控制该组件在显示的时候保持在屏幕显示,true或false
android:longClickable
是否响应长时间点击事件,true或false
android:minHeight
组件的最小高度,取值同android:fadingEdgeLength
android:minWidth
组件的最小宽度,取值同android:fadingEdgeLength
android:nextFocusDown
设置下一个向下获取焦点的组件,取值为id
android:nextFocusLeft
设置下一个向左获取焦点的组件,取值为id
android:nextFocusRight
设置下一个向右获取焦点的组件,取值为id
android:nextFocusUp
设置下一个向上获取焦点的组件,取值为id
android:padding
设置上、下、左、右4个边缘的填充距离,必须是一个大小值,取值同android:fadingEdgeLength
android:paddingBottom
设置下端边缘的填充距离,取值同android:padding
android:paddingLeft
设置左端边缘的填充距离,取值同android:padding
android:paddingRight
设置右端边缘的填充距离,取值同android:padding
android:paddingTop
设置上端边缘的填充距离,取值同android:padding
android:saveEnabled
是否允许保存状态,取值为true或false
android:scrollX
设置垂直滚动条的位移量,必须是一个大小值,取值同android:padding
android:scrollY
设置水平滚动条的位移量,必须是一个大小值,取值同android:padding
android:scrollbarAlwaysDrawHorizontalTrack
是否总是设置水平滚动条滑块,true或false
android:scrollbarAlwaysDrawVerticalTrack
是否总是设置垂直滚动条滑块,true或false
android:scrollbarSize
设置垂直滚动条的宽度和水平滚动条的长度,必须是一个大小值,取值同android:padding
android:scrollbarStyle
设置滚动条的样式,取值为下列之一:
insideOverlay在填充区域内,覆盖形式
insideInset在填充区域内,插进形式(凹进)
outsideOverly在绑定组件边缘,覆盖形式
outsideInset在绑定组件边缘,插进形似
android:scrollbarThumbHorizontal
设置水平滚动条按钮的绘制资源,必须引用可绘制资源
android:scrollbarThumbVertical
设置垂直滚动条按钮的绘制资源,必须引用可绘制资源
android:scrollbarTrackHorizontal
设置水平滚动条轨道的绘制资源,必须引用可绘制资源
android:scrollbarTrackVertical
设置水平滚动条轨道的绘制资源,必须引用可绘制资源
android:scrollbars
设置滚动显示,可以为一下一个或多个值:
none不显示滚动条
horizontal只显示水平滚动条
vertical只显示垂直滚动条
android:soundEffectsEnabled
是否允许音效,取值为true或false
android:tag
设置标记内容,可以通过View类实例的getTag方法获取该组件的标记内容,或者使用findViewByTag通过标记来查找相应的子组件
android:visibility
设置初始化可见状态,取值为以下之一:
visible可见(默认值)
invisible不可见(其所占空间将留出)
gone完全不可见(其所占空间都不会留出)
线性布局LinearLayout组件属性列表
属性
说明
android:baselineAligned
基线对齐
android:baselineAlignedChildIndex
以指定子组件作为基线对齐
android:gravity
指定该物体放入其容器的重心位置,取值为下列之一:
top上方,物体大小不变
bottom下方,物体大小不变
left左方,物体大小不变
right右方,物体大小不变
center_vertical垂直方向的中间,物体大小不变
fill_vertical填满垂直方向,自动进行大小调整
center_horizontal水平方向的中间,大小不变
fill_horizontal填满水平方向,自动进行大小调整
center居中(既是水平也是垂直方向的中间)
fill填满整个容器
clip_vertical
clip_horizontal
android:orientation
布局方向,取值为下列之一:
horizontal水平的
vertical垂直的(默认值)
android:weightSum
组件的比重和
线性布局参数LinearLayout_Layout
属性
说明
android:layout_gravity
当前子组件的心位置
android:layout_height
当前子组件的高度
android:layout_weight
当前子组件的空间比重,取值为浮点数
android:layout_width
当前子组件的宽度
相对布局RalativeLayout
属性
说明
android:gravity
设置添加组件的重心
android:ignoreGravity
忽略布局重心的影响
相对布局参数RalativeLayout_Layout
属性
说明
android:layout_above
将当前组件的下边缘放置于参照组件之上,该属性为参照组件的ID
android:layout_alignBaseline
当前组件与参照组件的基线对齐,该属性为参照组件的ID
android:layout_alignBottom
当前组件与参照组件的下边界对齐,该属性为参照组件的ID
android:layout_alignLeft
当前组件与参照组件的左边界对齐,该属性为参照组件的ID
android:layout_alignParenBottom
当前组件与父组件的下边界对齐,true或false
android:layout_alignParentLeft
当前组件与父组件的左边界对齐,true或false
android:layout_alignParentRight
当前组件与父组件的右边界对齐,true或false
android:layout_alignParentTop
当前组件与父组件的上边界对齐,true或false
android:layout_alignRight
当前组件与参照组件的右边界对齐,该属性为参照组件的ID
android:layout_alignTop
当前组件与参照组件的上边界对齐,该属性为参照组件的ID
android:layout_alignWithParentIfMissing
true或false
android:layout_below
将当前组件的上边缘放置于参照组件之下,该属性为参照组件的ID
android:layout_centerHorizontal
当前组件放置到父组件的水平居中的位置
android:layout_centerInParent
当前组件放置到父组件的重心位置
android:layout_centerVertical
当前组件放置到父组件垂直居中的位置
android:layout_toLeftOf
将当前组件的右边缘放置于参照组件之下,该属性为参照组件的ID
android:layout_toRightOf
将当前组件的左边缘放置于参照组件之下,该属性为参照组件的ID
绝对布局参数AbsoluteLayout_Layout
属性
说明
android:layout_x
当前组件的x坐标位置(从左到右方向)
android:layout_y
当前组件的y坐标位置(从上到下方向)
框布局FrameLayout
属性
说明
android:foreground
前置图片
android:foregroundGravity
前置图片重心
android:measureAllChildren
在切换显示时是否侧重所有子组件的大小
android:layout_gravity
添加组件的重心
框布局参数FrameLayout_Layout
属性
说明
android:layout_gravity
当前子组件所添加的重心位置
表格布局TableLayout
属性
说明
android:collapseColumns
设置允许折叠的列编号,列编号基于0,属性值可以是单个或多个列编号,编号与编号直接用逗号”,”分隔
android:shrinkColumns
设置允许收缩的列编号,列编号基于0,属性值可以是单个或多个列编号,编号与编号直接用逗号”,”分隔
android:stretchColumns
设置允许伸展的列编号,列编号基于0,属性值可以是单个或多个列编号,编号与编号直接用逗号”,”分隔
表格行的单元TableRow_Cell
属性
说明
android:layout_column
设置该单元格的列编号(基于0)
android:layout_span
指明该单元格可以跨越的列数
抽象列表视图组件AbsListView
属性
说明
android:cacheColorHint
设置缓冲颜色
android:drawSelectorOnTop
是否将选择器绘制在备选条目上方,取值为true或false
android:fastScrollEnabled
允许快速滚动
android:listSelector
指示选择器的内容
android:scrollingCache
滚动时是否使用绘制缓冲,true或false
android:smoothScrollbar
平滑滚动条
android:stackFromBottom
从下方堆叠条目
android:textFilterEnbled
是否允许过滤
android:transcriptMode
设置抄本模式
列表视图组件ListView
属性
说明
android:choiceMode
选择模式
android:divider
分割线颜色或组件的参考
android:dividerHeight
分割线高度
android:entries
指定绑定到当前列表视图的一个数组资源
android:footerDividersEnabled
是否允许页脚分割线
android:headerDividersEnabled
是否允许页眉分割线
格子视图组件GridView
属性
说明
android:columnWidth
指定列宽
android:gravity
添加组件的重心位置
android:horizontalSpacing
水平空间
android:numColumns
指定列数
android:strechMode
伸展模式
android:verticalSpacing
垂直空间
画廊视图组件Gallery
属性
说明
android:animationDuration
动画持续时间
android:gravity
添加组件的重心位置
android:spacing
间隔空间
android:unselectedAlpha
非选择条目的透明度
文本组件TextView
属性
说明
android:autoLink
是否自动链接(内容是网址或是电子邮件时)
android:autoText
自动更新拼音错误
android:bufferType
设置缓冲区类型
android:capitalize
自动大写
android:cursorVisible
光标是否可见,true或false
android:digits
所接受的数字字符
android:drawableBottom
在文本下方绘制
android:drawableLeft
在文本左方绘制
android: drawablePadding
绘制填充区
android: drawableRight
在文本右方绘制
android: drawableTop
在文本上方绘制
android:editable
是否可编辑,true或false
android:editorExtras
android:ellipsize
当内容过长时会自动打断单词内容
android:ems
android:enabled
是否可用,true或false
android:freezesText
是否冻结文本
android:gravity
指明文本的重心位置
android:height
高度值
android:hint
指示内容
android:imeActionId
android:imeActionLabel
android:imeOptions
输入法选项
android:includeFontPadding
android:inputMethod
指定输入法
android:inputType
输入类型,取值为下列之一:
none
text普通文本
textCapCharacters大写字符
textCapWords单词首字母大写
textCapSentences句子首字母大写
textAutoCorret自动更正
textAutoComplete自动完成
textMultiLine多行内容
textUri,Uri
textEmailAddress电子邮件地址
textEmailSubject电子邮件主题
textShortMessage短消息
textLongMessage长消息
textPersonName个人姓名
textPostalAddress邮政地址
textPassword密码
textVIsiblePassword可见的密码
textWebEditText网页格式
textFilter过滤字符串
textPhonetic语言发音
number数字
numberSigned有符号数字
numberDecimal十进制数字
phone电话号码
datetime日期时间
date日期
time时间
android:lineSpacingExtra
android:lineSpacingMultiplier
android:lines
设置文本行数
android:linksClickable
android:marqueeRepeatLimit
来回移动的动画次数
android:maxEms
android:maxHeight
物体的最大高度
android:maxLength
最大文本长度
android:maxLines
最大行数
android:minWidth
物体的最大宽度
android:minEms
android:minHeight
物体的最小高度
android:minLines
最小文本行数
android:minWidth
物体的最小宽度
android:numeric
是否使用数字输入方式
android:password
是否使用密码输入方式
android:phonenumber
是否使用电话号码输入方式
android:privateImeOptions
android:scrollHorizontally
android:selectAllOnFocus
android:shadowColor
文本阴影颜色
android:shadowDx
阴影的水平偏移
android:shadowDy
阴影的垂直偏移
android:shadowRadius
阴影的半径
android:singleLine
是否单行(不自动换行)
android:text
显示的文本内容
android:textApperance
基本字体颜色、字样、大小和样式
android:textColor
文本颜色
android: textColorHighlight
文本高亮颜色
android: textColorHint
文本提示颜色
android:textColorLink
文本链接颜色
android:textScaleX
文本缩放因数
android:textSize
文本大小
android:textStyle
文本样式,取值为下列之一:
bold粗体
italic斜体
bolditalic粗斜体
android:typeface
字样
android:width
物体的高度
自动完成文本框AutoCompleteTextView
属性
说明
android:completionHint
显示提示
android:completionHintView
提示视图
android:completionThreshold
设置开始提示的字符数
android:dropDownAnchor
下拉框链接视图
android:dropDownSelector
下拉框选择器
android:dropDownWIdth
下拉框宽度
图片视图ImageView
属性
说明
android:adjustViewBounds
是否调整视图范围
android:baselineAlignBottom
是否按照下端基线对齐
android:cropToPadding
是否按照填充进行裁剪
android:maxHeight
设置最大高度
android:maxWidth
设置最大宽度
android:scaleType
缩放类型,取值为下列之一:
matrix图片真实大小
fitXY适合图片大小
fitStart
fitCenter
fitEnd
center居中显示
centerCrop
centerInside
android:src
设置绘制用内容
android:tint
设置染色颜色值
android:layout_above="@id/xxx" --将控件置于给定ID控件之上 android:layout_below="@id/xxx" --将控件置于给定ID控件之下
android:layout_toLeftOf="@id/xxx" --将控件的右边缘和给定ID控件的左边缘对齐 android:layout_toRightOf="@id/xxx" --将控件的左边缘和给定ID控件的右边缘对齐
android:layout_alignLeft="@id/xxx" --将控件的左边缘和给定ID控件的左边缘对齐 android:layout_alignTop="@id/xxx" --将控件的上边缘和给定ID控件的上边缘对齐 android:layout_alignRight="@id/xxx" --将控件的右边缘和给定ID控件的右边缘对齐 android:layout_alignBottom="@id/xxx" --将控件的底边缘和给定ID控件的底边缘对齐 android:layout_alignParentLeft="true" --将控件的左边缘和父控件的左边缘对齐 android:layout_alignParentTop="true" --将控件的上边缘和父控件的上边缘对齐 android:layout_alignParentRight="true" --将控件的右边缘和父控件的右边缘对齐 android:layout_alignParentBottom="true" --将控件的底边缘和父控件的底边缘对齐 android:layout_centerInParent="true" --将控件置于父控件的中心位置 android:layout_centerHorizontal="true" --将控件置于水平方向的中心位置 android:layout_centerVertical="true" --将控件置于垂直方向的中心位置
好吧,就这样吧,最近感觉甚是迷茫,就回头梳理一下过往吧。
android View 详解