版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+]
开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。
这时候就可以使用descendantFocusability来解决啦,API描述如下:
Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.
Must be one of the following constant values.
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
通常我们用到的是第三种,即在Item布局的根布局加上Android:descendantFocusability=”blocksDescendants”的属性就好了
Defines the layout mode of this ViewGroup.
Must be one of the following constant values.
Constant | Value | Description |
---|---|---|
clipBounds |
0 | Use the children's clip bounds when laying out this container.铺设这种容器时,使用子控件剪辑边界。 |
opticalBounds |
1 | Use the children's optical bounds when laying out this container.铺设这种容器时,使用子控件光纤边界界。 |
This corresponds to the global attribute resource symbol layoutMode
.
Android 4.1(Jelly Bean) 在 TextView 和 EditText 元素里对“双向文字顺序”提供了有限的功能支持,允许应用程序在编辑和显示字符的时候,能够同时支持从左到右(LTR)以及从右到左(RTL)的排列格式。Android 4.2目前已经对“从右到左”的文字排列顺序给予了原生级别的全面支持,包括提供了一个布局镜面工具,使得开发者把能够将优质的用户体验带给每一位用户,不管该用户的书写顺序是从左到右,还是从右到左。
Android 4.2保证了该新特性不会影响到目前已经存在程序,如果之前的程序代码不修改,其应用的外观将维持现状。如果你想要修改程序,那么仅仅需要很小的改动,应用就可以自动地被“镜面反射”,这样就能轻易地将系统语言设置为从右到左的书写格式(阿拉伯语,希伯来语和波斯语都采用这种格式)。例如,下面的截图就展示了上述的设置效果:
从左到右的布局方式从右到左的布局方式
要实现RTL(从右到左)的布局镜面反射,仅仅需要遵循下列步骤就可以做到:
1. 在你的应用程序声明文件(manifest)里声明开启RTL mirroring的支持。具体做法是:在manifest.xml声明文件的
2. 修改应用程序中所有的“left/right”布局属性,改为对应的”start/end”布局
1)如果你的应用程序是针对Android 4.2目标平台(应用的targetSdkVersion或者minSdkVersion是17或者更高), 那么你就应当用“start”和“end”替换原来的“left”和“right”。例如,android:paddingLeft应当被替换为android:paddingStart。
2) 如果你想让你的应用程序与Android 4.2之前的版本保持兼容(也就是与targetSdkVersion或者minSdkVersion为16或者更早的版本),那么你应当既加上“start”和“end”,又加上“left”和“right”。例如,你应当同时写上:adnroid:paddingLeft和android:paddingStart。
为了更精确地控制应用程序在UI上的文字书写顺序(从左到右,或者从右到左),Android 4.2 引入了如下的API:
android:layoutDirection —该属性设置组件的布局排列方向
android:textDirection — 该属性设置组件的文字排列方向
android:textAlignment — 该属性设置文字的对齐方式
getLayoutDirectionFromLocale() —该方法用于获取指定地区的惯用布局方式
在使用从右到左的排列方式时,你甚至创建自定义的布局方式,可绘制对象,以及其他资源。仅仅是简单地使用资源匹配器“ldrtl”对你的资源进行一下标识,你就可以把资源定义为“从右到左方向的资源”。在调试和优化从右到左的布局方面,HierarchyViewer目前支持对start/end属性,布局方向,文字方向,文字对齐方式等所有信息的层次化显示。
那么现在是时候为所有的用户开发优美的Android应用程序了,无论用户的文字语言习惯是从左到右,还是从右到左。我们非常期待看到这些优美应用的产生!
对于FrameLayout.LayoutParams,这里仅有android:layout_gravity属性,可以查看前面文章
http://isux.tencent.com/learn-android-from-zero-session3.html
我们可以实践一下:
新建一个Android项目,然后在layout文件夹找到布局xml文件并写入以下布局
运行效果如下:
viewFlipper中的item如何动态设置高度?
例如:
<ViewFlipper android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom"> <include layout="@layout/layoutone"/> <include layout="@layout/layouttwo"/> <include layout="@layout/layoutthree"/> ViewFlipper>
假如想做成一个layoutone是50dp,layouttwo是50dp,layoutthree是80dp高度的话,你会发现在子布局中设置高度后,ViewFlipper切换时总是以子view中高度最大的值为其高度值,也就是80dp。但是又不想让layoutone和layouttwo太高,开始的时候想通过LayoutParams动态设置吧,可惜不行(把viewflipper单独出来才行),然后找到需要设置android:measureAllChildren="false",或者代码调用setMeasureAllChildren(false);即可,因为默认情况下measureAllChildren=true。设置后各个view的高度就不同了。该属性也适合FrameLayout等。
原因:参见FrameLayout#onMeasure(int, int)的源码,android:measureAllChildren="true"时,将所有children加入到mMeasureAllChildren的链表中,然后再重新measure下。
效果图
看到这个图时你可以先想想如果是你,你怎么实现这个效果。马上想到用RelativeLayout?NO,NO,NO,,,
二、实现代码
代码说明:
1、只需在根节点设置android:clipChildren为false即可,默认为true
2、可以通过android:layout_gravity控制超出的部分如何显示。
3、android:clipChildren的意思:是否限制子View在其范围内
翻文档找到下面介绍
android:clipChildren setClipChildren(boolean) Defines whether a child is limited to draw inside of its bounds or not.
android:clipToPadding setClipToPadding(boolean)Defines whether the ViewGroup will clip its drawing surface so as to exclude the padding area.
2. clipToPadding用来定义ViewGroup是否允许在padding中绘制。默认情况下,cliptopadding被设置为ture, 也就是把padding中的值都进行裁切了。1.clipChild用来定义他的子控件是否要在他应有的边界内进行绘制。 默认情况下,clipChild被设置为true。 也就是不允许进行扩展绘制。
还有该功能是android第一个版本就已经提供的方法。 所有可以跨任意android版本使用。
这两个属性联合起来能干什么呢? 哈, 用来做一些类似于心形放大等点击特效非常合适啊。 不用去更改布局, 只需加入这两个属相,并引入动画效果就完成了。
按照上面的思路,做个demo吧。
先看看最后的效果吧, 点击第三个机器人就会播放一个变大的效果(类似于心变大的效果)
废话不多说,上关键代码:
1. 布局代码(核心)
主要看设的两个关键属性android:clipChildren和android:clipToPadding均为false。 这就让点击第三个小人时,可以跨边界进行绘制,并且允许其在padding区域内绘制。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:clipChildren="false" android:clipToPadding="false"> <ImageView android:id="@+id/img1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/ic_launcher" /> <ImageView android:id="@+id/img2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/ic_launcher" /> <ImageView android:id="@+id/img3" android:onClick="AA" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@android:color/black" android:src="@drawable/ic_launcher" /> <ImageView android:id="@+id/img4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/ic_launcher" /> <ImageView android:id="@+id/img5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/ic_launcher" /> <ImageView android:id="@+id/img6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/ic_launcher" /> LinearLayout>
2. 其他辅助代码,如动画和act等内容
xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:fromXScale="1.0" android:fromYScale="1.0" android:toXScale="3.0" android:toYScale="3.0" android:duration="2000" android:pivotX="50%" android:pivotY="50%" > scale>
package com.example.clipchildren; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { //只对第三个小人做放大动作 ImageView image3 =null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); image3 = (ImageView) findViewById(R.id.img3); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void AA(View view) { Toast.makeText(this, "aa", Toast.LENGTH_SHORT).show(); Animation an = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.anims); image3.startAnimation(an); } }
3. 除了这种应用,网上还有其他人对这两个属性的妙用:
用viewPaper来实现一个Gallery效果:http://www.iteye.com/topic/1129898
版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+]
Android官方文档是这么描述的:
那到底这个属性是做什么用的呢?
baselineAligned:基准线对齐。
首先要解释什么是基准线,这个在中文中不常见,但在以字母为书写语言的其他国家非常常见。
如上图所示,红线就是基线(baseline),是不是很熟悉,这不就是我们经常写英文的四条线中的第三条吗。
那baselineAligned是做什么用的呢?根据官方文档,baselineAligned默认设置为true,当设置为false时,
布局文件和它的子组件的基准线不对齐。
让我们通过一个例子来看看效果怎样的。
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="wrap_content" 5 android:baselineAligned="false" 6 android:orientation="horizontal"> 7 8 <TextView 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:layout_marginRight="5dip" 12 android:text="TextView:p" /> 13 <TextView 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:layout_marginRight="5dip" 17 android:textSize="30sp" 18 android:text="LargeTextView:p" 19 /> 20 LinearLayout>
这是将baselineAligned值设置为false时,也就是不对齐。看看运行效果:
把baselineAligned值改为true。
看,差别明显,这样就很好的理解了baselineAligned的作用了。其实,这个并不难,但我觉得不管难不难,只要不明白,就应该多思考,想想为什么。
LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是Container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐)。
API说明
xml属性
android:baselineAligned:是否允许用户调整它内容的基线。
android:baselineAlignedChildIndex:当一个线性布局与另一个布局是按基线对齐的一部分,它可以指定其内容的基线对齐方式。
android:gravity:指定如何在该对象中放置此对象的内容(x/y坐标值)。
android:orientation:设置它内容的对其方向(横向/竖向)。
LinearLayout还支持为其包含的widget或者是container指定填充权值。好处就是允许其包含的widget或者是container可以填充屏幕上的剩余空间。这也避免了在一个大屏幕中,一串widgets或者是containers挤成一堆的情况,而是允许他们放大填充空白。剩余的空间会按这些widgets或者是containers指定的权值比例分配屏幕。默认的 weight 值为0,表示按照widgets或者是containers实际大小来显示,若高于0的值,则将Container剩余可用空间分割,分割大小具体取决于每一个widget或者是container的layout_weight及该权值在所有widgets或者是containers中的比例。例如,如果有三个文本框,其中两个指定的权值为1,那么,这两个文本框将等比例地放大,并填满剩余的空间,而第三个文本框不会放大,按实际大小来显示。如果前两个文本框的取值一个为2,一个为1,显示第三个文本框后剩余的空间的2/3给权值为2的,1/3大小给权值为1的。也就是权值越大,重要度越大。
如果LinearLayout包含子LinearLayout,子LinearLayout之间的权值越大的,重要度则越小。如果有LinearLayout A包含LinearLayout C,D,C的权值为2,D的权值为1,则屏幕的2/3空间分给权值为1的D,1/3分给权值为2的C。在LinearLayout嵌套的情况下,子LinearLayout必须要设置权值,否则默认的情况是未设置权值的子LinearLayout占据整个屏幕。
View属性说明
下面对View的属性进行详细说明
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 |
设置染色颜色值 |