码迷,mamicode.com
首页 > 其他好文 > 详细

布局文件

时间:2015-09-02 17:19:02      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

所有的布局文件都res/layout下面,你可以选择新建xml文件来新建布局。点击进入编辑。在下方有两个可以切换的地方,点击graphical Layout可以看到效果,单击xml可以看到编辑的文件

这里以原始的helloword为例


 <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
      android:id="@+id/container"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      tools:context="com.example.helloworld.MainActivity"
      >
      <TextView
          android:id="+id/tv_helloword"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="@string/hello_world" />
  </LinearLayout>

在写布局文件之前要理解一个事,布局设置的属性是非常合理的,和一个人要画一幅画的过程是一样的,不要觉得属性设置的很奇怪。

首先看最外层的LinearLayout.忽略xmlns这些和命名空间有关的东东,只看布局相关。LinearLayout是线性布局,顾名思义就是要线一样来排列,类似的有RelativeLayout(相对布局),FrameLayout(帧布局),GridLayout(网格布局),AbsoluteLayout(绝对布局)等,这些都是类似壳子一样的东西,它们决定了里面包裹的控件是怎么排列的。

无论是layout还是TextView,Button这样的控件,要显示在屏幕上,肯定是要知道它的大小的,而android控件的大小是与其父母紧密相关,当然也可以指定具体的数值。android:layout_width 是布局的宽度,android:layout_height是布局的高度。不指定具体的数值会有三个选项供选择fill_parent,match_parent,wrap_content,其中fill_parent和match_parent都是一样的效果,即最大的化的填充父母布局。fill_parent是比较老的参数,如果要填充父母布局,一般就选择match_parent,而wrap_parent则是自适应父母,由系统来决定你的控件相对于父母布局有多大。

既然是设置大小,肯定是可以指定数值的,比如100px,100dp等,单位不同,带来的效果不同,dp单位叫设备无关像素,px单位就是像素单位,一个Px就是一个像素,多数情况下选择dp,因为Android手机的屏幕大小是很不一致的,如果选择px为单位会使得视图的效果感很差,关于什么叫dp,px如果要细细说明又可以写上一篇,这里就暂时跳过。

知道了大小,有时候需要引用到这个控件或者布局,这时候就得知道它的唯一标识。设置唯一标识的方式为android:id="+id/xxxx",后面的xxxx为自定义的名字,给这个布局或者控件命名。如果根本引用不到这个控件或者布局就没有定义标识的必要。

理论上除了布局的大小是一定要有的,其它的都是可选的。根据实际情况,linearLayout既然是线程布局,就可以横着排列,或者竖着排列。LinearLayout由 android:orientation来设置是何种方式,两个选择,一个是"vertical",一个是“horizontal”默认情况是horizontal.看代码和效果

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.helloworld.MainActivity"
    android:orientation="horizontal"
    >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    </LinearLayout>

效果:

技术分享

以上是水平是,垂直的代码部分就只是android:orientation = "horizontal"

效果图:

技术分享

 

布局文件

标签:

原文地址:http://www.cnblogs.com/xiaojingzhu/p/4778673.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!