XML属性 | 对应方法 | 备注 |
android:text | setText(CharSquence) setText(int resId) |
设置文本框显示的文本内容 |
android:textColor | setTextColor(ColorStateList) | 设置文本框显示文本的颜色 |
android:textSize | setTextSize(float) | 设置文本框显示文本的字号 |
android:textStyle | setTypeface(Typeface) | 设置文本框显示文本的字体风格 |
android:textAppearance | 设置文本框显示文本的颜色、字体、大小等样式 | |
android:ellipsize | setEllipsize(TextUitls.TruncateAt) | 设置显示文本超出TextView的长度时如何处理处理文本内容 |
android:gravity | setGravity(int) | 设置文本框显示文本的对齐方式 |
android:maxLines | setMaxLines(int) | 设置文本框的最多占几行 |
android:minLines | setMinines(int) | 设置文本框最少占几行 |
android:singleLine | setTransformationMethod | 设置文本框是否是单行模式。 |
android:drawableLeft | setCompoundDrawablesWithIntrinsicBounds(Drawable,Drawable,Drawable,Drawable) | 在文本框左侧绘制图像 |
android:drawableRight | setCompoundDrawablesWithIntrinsicBounds(Drawable,Drawable,Drawable,Drawable) | 在文本框右侧绘制图像 |
android:drawableTop | setCompoundDrawablesWithIntrinsicBounds(Drawable,Drawable,Drawable,Drawable) | 在文本框上方绘制图像 |
android:drawableBottom | setCompoundDrawablesWithIntrinsicBounds(Drawable,Drawable,Drawable,Drawable) | 在文本框下方绘制图像 |
android:drawableStart | 在文本框开始处绘制图像 | |
android:drawableEnd | 在文本框结束处绘制图像 | |
android:drawablePadding | 设置文本框显示文字和图像之间的间距 |
android:layout_gravity 和 android:gravity 的区别
gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思。
从名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。
android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。
比如说button: android:layout_gravity 表示按钮在界面上的位置。 android:gravity表示button上的字在button上的位置。
当作为父layout的LinearLayout的属性为android:orientation="vertical" 的时候,android:layout_gravity="?"这里设为横向的时候才能生效。比如:left,right,center_horizontal等;
当作为父layout的LinearLayout的属性为android:orientation="horizental" 的时候,android:layout_gravity="?"这里设为纵向的时候才能生效。比如:top,bottom,center_vertical等;
有一个比较特殊的是center,不管是横向还是纵向的时候,它总有一个方向起作用, 因为LinearLayout他只可能有一个方向,
3.ImageView的scaleType属性值 说明
fitCenter 缺省值.保持纵横比缩放,图片放在ImageView中央
fitStart 保持纵横比缩放,图片放在ImageView左上角
fitEnd 保持纵横比缩放,图片放在ImageView右下角
fitXY 对图片横向、纵向独立缩放以适应控件大小。
center 把图片放在ImageView中间,不进行任何缩放
centerCrop 保持纵横比缩放,图片完全覆盖ImageView。
centerInside 保持纵横比缩小,ImageView能完全显示该图片。
4.layout_weight
只有在Linearlayout中,该属性才有效。
这就是它奇葩的地方,很容易就让我们一直误认为是整个控件分割空间。到这里,大家一定会认为,这样的话,layout_weight 这个属性就没有什么意义了,原以为它可以分配空间呢,原来只是分割剩余空闲空间。
其实,呵呵,layout_weight 是可以用来进行整个空间的分割的,如果我们让控件的宽度定义为0,这样比如2个控件的 layout_weight="1" 就可以各自50%平分整个空间了,因为:0 + 1/2空闲空间 = 0 + 1/2空闲空间
这是一个小技巧,也是非常实用的一个实用layout_weight分割方案:定义控件的 layout_width="0dp" 或 layout_height="0dp" 配上 layout_weight 就可以实现对整个空间的比例分割了。
android:layout_weight的真实含义是:一旦View设置了该属性(假设有效的情况下),那么该 View的宽度等于原有宽度(android:layout_width)加上剩余空间的占比!
设 屏幕宽度为L,在两个view的宽度都为match_parent的情况下,原有宽度为L,两个的View的宽度都为L,那么剩余宽度为L-(L+L) = -L, 左边的View占比三分之一,所以总宽度是L+(-L)*1/3 = (2/3)L.事实上默认的View的weight这个值为0,一旦设置了这个值,那么所在view在绘制的时候执行onMeasure两次的原因就在 这。
@@设置android:layout_width为wrap_content和match_parent会造成两种截然相反的效果。
1. 将两个TextView的宽度均设为match_parent,一个权重为1,一个权重为2.得到效果如下:
可以看到权重为1的反而占了三分之二!
2. 宽度为wrap_content,得到视图如下:
左边 TextView占比三分之一,又正常了。
5.TextViewellipsize
TextView及其子类,当字符内容太长显示不下时可以省略号代替未显示的字符;省略号可以在显示区域的起始,中间,结束位置,或者以跑马灯的方式显示文字(textview的状态为被选中)。
其实现只需在xml中对textview的ellipsize属性做相应的设置即可。
android:ellipsize="start" 省略号在开头
android:ellipsize="middle" 省略号在中间
android:ellipsize="end" 省略号在结尾
android:ellipsize="marquee" 跑马灯显示
或者在程序中可通过setEillpsize显式设置。
注: EditText不支持marquee这种模式。
6.ps dp sp:
ps:像素值,开发过程中一般不建议使用。因为不能根据屏幕的分辨率进行等比例的缩放
dp (dip): 多用于图片大小 p device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
sp: 根据屏幕分辨率,等比例缩放,主要用于字体显示。
in(英寸):长度单位。
mm(毫米):长度单位。