Android第二天

来源:互联网 发布:影视先锋mac 编辑:程序博客网 时间:2024/05/17 23:13
布局的介绍:【了解】
1、在4.0以前版本中一共有五种布局,都是ViewGroup的子类。分别是AbsoluteLayout、RelativeLayoutLinearLayoutFrameLayout、TableLayout。而TableLayout是LinearLayout的子类。(中文分别是:绝对布局、相对布局、线性布局、帧布局、表格布局)。
2、在2.2操作系统中将AbsoluteLayout过期。而目前TableLayout也逐渐少用。
3、在4.0之后又新增GridLayout。(GridLayout最经典的案例是计算器界面)
总之,Android中一共有六种布局。目前推荐使用RelativeLayoutLinearLayout、GridLayout三种布局。

View及其子元素常用属性:(各种布局及控件的共同属性)
  1. android:id
  2. android:background 
  3. android:onClick     为该控件的单击事件绑定监听器
  4. android:padding    设置控件四周的填充区域(控件文本内部相对控件的距离)
  5. android:visibility    设置该控件是否可见(invisible/visible/gone
  6. android:alpha        设置该组件透明度(0-1之间的数值)
  7. android:layout_height      子组件的布局高度
  8. android:layout_width        子组件的布局宽度
  9. android:layout_margin     设置子组件的外边距


LinearLayout的常用属性:
1.android:orientation     定义布局内控件或组件的排列方式
可选项:vertical 、 horizontal

2.android:layout_width    定义控件的宽度
可选项:fill_parent / match_parent/ wrap_content/绝对数值
备注:fill_parent / match_parent的效果完全一致,都是填充整个父控件。但是自2.2版本开始推荐使用match_parent 。wrap_content指的是该控件的宽度正好包裹内容物。

3.android:layout_height    定义控件的高度
可选项:fill_parent / match_parent/ wrap_content/绝对数值
备注:fill_parent / match_parent的效果完全一致,都是高度填充整个父控件。wrap_content指的是该控件的高度正好包裹内容物。

4.android:id   设置控件的id。这样就可以在R.java中自动生成相应的值,在程序中通过findViewById就可以调用。
设置id的格式为:android:id = "@+id/id的名字"

5.android:background     设置控件的背景颜色或背景图片
例如:android:background="#ffffff"
          android:background="@drawable/图片名称"
【备注:】
颜色有RGB颜色格式和ARGB格式。RGB是红绿蓝三原色。而ARGB是带alpha的三原色,即有透明度的三原色。
#FFFFFF 代表白色
#000000  黑色
#FFFFFFFF   完全不透明
#00FFFFFF   完全透明
#88FFFFFF   半透明

6.android:layout_weight    设置控件的权重。即各控件在水平或者垂直方向上平均分配。
备注:如果是水平方向设置权重,要将android:layout_width设置为0dp,如果是垂直方向上使用权重,要将android:layout_height设置为0dp。否则权重容易受到高度或宽度的干扰而出现偏差。

7.android:gravity   该属性用来控制该View的内容物的位置。
如果该属性是定义在布局节点中,则该布局中所有控件的位置都受到这个属性的控制。
如果该属性出现在Button、TextView、EditText等控件中,则用来控制这些控件上的文字的位置。
可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。
【备注:】本属性与android:layout_gravity不同。

8.android:layout_gravity   该属性用于设置控件相对于容器的对齐方式。
可选项有:top、bottom、left、right、center_vertical、center_horizontal 、fill_vertical 、 center、fill等等。
这些可选项中不是适用于每一种布局。在垂直线性布局中,android:gravity为bottom不起作用;而水平线性布局中,android:gravity为right不起作用。
【备注:】而本属性是android:layout_gravity属性,与 android:gravity 属性不同。

(三)、LinearLayout的特有属性:【重新归纳:去除公共属性后的特有属性
1、android:orientation    布局管理器内组件的排列方式
2、android:gravity    设置布局管理器内组件的对齐方式

(四)、 LinearLayout 子元素的特有属性:
1、android:layout_weight    子元素在 LinearLayout 中所占的权重
2、android:layout_gravity     子元素在 LinearLayout 中的对齐方式


RelativeLayout:【掌握
(一)、概念:指按着控件之间的相对位置来进行布局。

(二)、RelativeLayout特有属性:
1、android:gravity    设置布局容器内子控件的对齐方式    
2、android:ignoreGravity    设置布局管理器内哪个控件不受gravity属性的影响

(三)、RelativeLayout子元素的特有属性:LayoutParams
    A、第一组:指兄弟控件之间的相对位置。该组属性的值是另一个控件的id。
  1. layout_toRightOf      该控件在哪个控件的右侧
  2. layout_toLeftOf        该控件在哪个控件的左侧
  3. layout_above           该控件在哪个控件的上侧
  4. layout_below            该控件在哪个控件的下侧

    B、第二组:指兄弟控件之间的对齐关系。该组属性的值是另一个控件的id。
  1. layout_alignRight      该控件与哪个控件的右对齐
  2. layout_alignLeft        该控件与哪个控件的左对齐
  3. layout_alignTop        该控件与哪个控件的顶对齐
  4. layout_alignBottom   该控件与哪个控件的底对齐

    C、第三组:指控件与父布局之间的对齐关系。该组属性的值是true或者false。
  1. layout_alignParentRight               该控件与父布局控件的右对齐吗?
  2. layout_alignParentLeft                 该控件与父布局控件的左对齐吗?
  3. layout_alignParentTop                 该控件与父布局控件的顶端对齐吗?
  4. layout_alignParentBottom            该控件与父布局控件的底部对齐吗?
  5. layout_centerInParent                  该控件位于父布局控件的中心位置吗?
  6. layout_centerVertical                    该控件位于父布局控件的垂直中心位置吗?
  7. layout_centerHorizontal                该控件位于父布局控件的水平中心位置吗?

sp、dp、dip、pt、px等单位的区别?
  1. dpi    dpi指像素密度。dots per inch  ,即每英寸内像素点的个数。它不是表示长度的单位。
    • 在android中认为:低(120dpi),中(160dpi),高(240dpi),超高(320dpi)。随着技术的增长,实际dpi已经超出这个定义范围。
  2. dip    device independent pixels  ,即与设备无关的像素。目前这个单位已经被dp所取代,而不建议使用dip。
  3. dp     与dip的概念一样。不过dp已经取代了dip。在Android中用来表示非文字大小的尺寸。例如:外边距、内填充等。
    • px = dp * (dpi / 160)
    • 3.7寸屏幕,分辨率320*480手机上,正好1px = 1dp。
  4. sp      scale  independent  pixel  ,即与缩放比例无关的像素。在android中常用来表示文字大小。
  5. px      表示像素。因为同样是200px,但是在不同手机下显示的大小是不同的。
  6. pt      point磅。1磅=1/74英寸
  • xlarge 屏幕至少:960dp x 720dp 
  • large 屏幕至少 :640dp x 480dp 
  • normal 屏幕至少 :480dp x 320dp 
  • small 屏幕至少 :426dp x 320dp
  • 总之:dp是用来定义非文字的尺寸,sp用来定义文字大小。px只用于产生一条一像素的分割线时使用。


TextView 常用属性:
1、andorid:text   设置文本的内容
2、 android:textColor     设置文本的颜色
3、 android:textSize       设置文本的字体大小(sp)
4、andorid:height          设置文本的高度,以像素为单位
5、 android:width            设置文本的宽度,以像素为单位
6、 android:inputType     设置文本的类型。例如是普通文本,还是email,password,数字等等。
7、 android:singleLine     设置文本是否是单行显示。
8、android:gravity     设置文本框内文本的对齐方式。可选项有:top、bottom、left、right、center、fill、center_vertical、center_horizontal、fill_horizontal等等。这些属性值也可以同时指定,各属性值之间用竖线隔开。例如right|bottom
9、android:drawableLeft    用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
10、android:drawableRight    用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
11、android:drawableTop    用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
12、android:drawableBottom   用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
13、android:autoLink   给指定的文本增加可单击的超链接。可选项为:none、web、email、phone、map和all。
        多个选项之间使用“|”分隔,也可以使用all
14、android:hint    设置当文本框内文本内容为空时,默认显示的提示性文字。

【补充:】
1、android:textAllCaps="true"     设置所有字母都大小
2、android:ellipsize="end"           文字过长,设置省略号。可选项:start , end ,middle,marquee
  • android:ellipsize="start" 省略号在开头        
  • android:ellipsize="middle" 省略号在中间        
  • android:ellipsize="end" 省略号在结尾        
  • android:ellipsize="marquee" 跑马灯显示
       【备注:】要实现跑马灯效果。要同时具有以下属性。
  •     android:ellipsize="marquee" 
  •     android:singleLine="true"  
  •     android:focusable="true" 
  •     android:focusableInTouchMode="true" 
  •     android:marqueeRepeatLimit="marquee_forever"

0 0