android学习笔记之layout篇

来源:互联网 发布:java典型编题 编辑:程序博客网 时间:2024/06/06 05:45

LinearLayout简介:

                             LinearLayoutAndroid中最常用的布局组件之一, 它将自己包含的子元素按照一个方向进行排列:方向包括水平排列和竖直排列2; 方向的设置通过:

                            android:orientation=”vertical”竖直; android:orientation=”horizontal”水平

                            javacode:

 

---------------------------------------------------------------------------------------------------------------------------------

                            layoutMain.setOrientation(LinearLayout.HORIZONTAL);//设置为竖直方向;

                            setContentView(layoutMain);//layoutMain和此Activity进行关联;

---------------------------------------------------------------------------------------------------------------------------------

         FrameLayout简介:

                           一个FrameLayout好比屏幕上提前预定的空白区域;然后可以填一些元素到里面,比方说一张图片;需要注意的是,所有的元素都被放置在FrameLayout区域最左上的区域;而无法为这些元素指定一个确切的位置;如果一个FrameLayout里面里有多个子元素,后面的子元素的显示会重叠在前一个元素上;

RelativeLayout简介:

                   相对布局类,即首先RelativeLayout是一个容器,它里面的元素,Button等按钮的位置是按照相对位置来计算的;eg:有两个Button按钮都布局在一个relativeLayout里面,我们可以定义第二个Button在第一个Button的上面或者右面;但是第二个button所在的位置,依赖于第一个Button的位置。需要注意的是,出于性能的考虑,对于相对布局的精确位置的计算只会执行一次,如果,一个可视化组件B依赖于A,必须要让A出现在B的前面;

                   说明:

a.      android:id定义组件的id;

b.      android:layout_width定义组件的宽度,layout_height,定义组件的高度;目前学过的属性值”wrap_content”(仅仅包裹住内容)”fill_parent”(填充父容器);

c.      android:layout_background 定义组件的背景图片;

d.      android:padding=”10dip”,dip的意思是依赖于设备的像素。是描述区域大小的一种单位。类似HTML中的padding;

e.      android:layout_blow=”@id/label”相对布局;

f.       android:layout_alignParentRight=”true”,和父容器的右边平齐,相对布局;

g.      android:layout_magginLeft=”10dip”,设置组件的左边距为10dips;

h.      android:layout_toLeftOf=”@id/cancel”,设置组件在id=Cancel组件的左边;

i.        android:layout_alignTop=”@id/cancel”,设置此组件和id=Cancel的组件的高度平齐;

 

Android支持的描述大小区域的类型:

px:像素  dip:依赖于设备的像素         sp:带比例的像素            pt:         in:英尺mm:毫米;

 

   RelativeLayoutLinearLayout结合使用

javacode:

--------------------------------------------------------------------------------------------------------------------------

         LinearLayout  layoutMain = new LinearLayout(this);

         layoutMain.setOrientation(LinearLayout.HORIZONTAL);

setContentView(layoutMain);  //上下文里创建LinearLayout,设置上下排列并和当前Activity关联;

LayoutInflaterinflate=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);//LayoutInflater可以对XML的布局文件进行解析,并生成一个View;

RelativeLayout  layoutLeft =inflate.inflate(R.layout.left,null);

                                                               //调用inflate方法解析left.xml

         RelativeLayout  layoutRight =inflate.inflate(R.layout.right,null);

        

         RelativeLayout.LayoutParams relParam =new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,~); //生成一个RelativeLayout适用的LayoutParams;

         layoutMain.addView(layoutLeft,100,100);     //第二个参数是height,第三个参数是width;

         layoutMain.addView(layoutRight,relParam);//layoutRightàlayoutMain

--------------------------------------------------------------------------------------------------------------------------

        

                  LayoutParams:屏幕上一个区域是由一个Layout占领的,如果想把一个View加入到这个区域中去,要么开发者告诉这个Layout所需的宽高方向等信息;要么Layout按照默认的值进行处理;而这些相关的信息都封装在LayoutParams;

                   所有的LayoutParams都是继承Android.view.ViewGroup.LayoutParams;其中,如果

layoutMain.addView(layoutLeft,100,100)100是固定的值;

                   如果FILL_PARAENT;意味着View和父容器一样大;

                   如果WRAP_CONTENT:意味着View的大小只需要包裹住View里面的内容即可; 

                  

            LayoutInflater:

                            用来将一个XML的布局文件变成一个View的类,这个过程应该是在应用的构建过程来完成,例如在ActivityonCreate方法中使用,代码如下:

                            LayoutInflaterinflate = (LayoutInflater)getSystemService(context.LAYOUT_INFLATER_SERVICE);

                            LinearLayoutlayout=(LinearLayout)inflate.inflate(R.layout.a,null);

                            一个LayoutInflater需要从getSytemService方法中获取,而不能直接实例化。这个类负责将一个xml的布局文件实例化,而在代码中可以应用xml定义的组件;

 

                  TableLayout:

                            一种表格式的布局,这种布局会把包含的元素以行和列的形式进行排列,表格的列数为每一行的最大列数,表格里的单元格可以为空;

 

原创粉丝点击