学习过android系统的一些常用组件,一个完整的UI界面需要将这些组件按照一定的样式进行布局,然而这些就需要使用AndroidXML布局文件来完成了。但对于android的布局样式学员还是迷茫?现将Android中常用的布局框架列举如下,仅供学员参考学习。
1.LinearLayout:是一种Android中最常用的布局之一,它将自己包含的子元素按照一个方向进行布局排列。
方向有两种:水平(Android:orientation="horizontal")和竖直(Android:orientation="vertical")
2.FrameLayout:一个FrameLayout对象好比一块在屏幕上提前预定好的空白区域,然后可以填充一些元素到里边,比方说一张图片等。需要注意的是所有元素都被放置在FrameLayout区域的左上的区域,而且无法为这些元素指定一个确切的位置。如果有多个元素,则后边的会重叠在前一个元素上。
3.RelativeLayout:这是一个相对布局类,首先RelativeLayout是一个容器,这里边的元素,如Button按钮等的位置是按照相对位置来计算的。例如:两个按钮都在一个Relativelayout里边,我们可以定义第二个Button在第一个Button的上边或者右边。但到底第二个button在什么位置,它还是依赖于第一Button的位置。需要注意的是:出于性能上的考虑,对于相对布局的精确位置的计算只会执行一次,所以,如果一个可视化组件B依赖于A,那么必须要让A出现在B的之前。
4.TableLayout:是一种表格式的布局。这种布局会把包含的元素以行和列的形式进行排列。表格的列数为每一行的最大列数。当然表格里边的单元格是可以为空的。
5.LinearLayout和RelativeLayout互助使用: 你需要建立两个.xml文件。 自己查询LayoutPamams和LayoutInflater的理解
- public class ActivityLayOut extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- //自己构建新的layout
- LinearLayout layoutMain = new LinearLayout(this);
- //设置布局方式水平
- layoutMain.setOrientation(LinearLayout.HORIZONTAL);
- //将我们构建的layoutMain和此Activity进行关联
- setContentView(layoutMain);
- //等到一个LayoutInflater对象,这个对象可以对XML的布局文件进行解析,并且生成一个View
- LayoutInflater inflate = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- //调用inflate()方法将left.xml进行解析,并且生成一个RelativeLayout布局
- RelativeLayout layoutLeft = (RelativeLayout)inflate.inflate(R.layout.layout_left, null);
- //调用inflate()方法将Right.xml进行解析,并且生成一个RelativeLayout布局
- RelativeLayout layoutRight = (RelativeLayout)inflate.inflate(R.layout.layout_right, null);
- //生成一个适用的LayoutParams
- RelativeLayout.LayoutParams relParam = new RelativeLayout.LayoutParams(
- RelativeLayout.LayoutParams.WRAP_CONTENT,
- RelativeLayout.LayoutParams.WRAP_CONTENT);
- //将layoutLeft添加到layoutMain当中,其中第一个参数是添加进去的View,
- //第二个事这个View的高度,第三个是View的宽度
- layoutMain.addView(layoutLeft,100,100);
- //将layoutRight添加到layoutMain当中,第二个参数就是一个RelativeLayout.LayoutParams
- layoutMain.addView(layoutRight,relParam);
- }
以上内容归本人原创,版权归本人所有不得随意转载,如有问题请发送邮件到redarmy_chen@qq.com