Android 安卓学习之路:布局篇

来源:互联网 发布:第一款聊天软件 编辑:程序博客网 时间:2024/04/28 18:24

首先要了解 布局一共有哪些又分为哪几大类

1.线性布局 LinearLayout 

该布局很容易理解 纵向和垂直排列 是它的特点 由它的属性:

android:orientation="vertical" ,垂直|| android:orientation="horizontal" 纵向,来控制。

同时它还拥有一个比重方法 通过设置weight属性 在这里有俩种概念,第一个是按需求比重,第二个是 按比例比重,你可以根据你的需求来选择,按需求比重的话 通常weight默认为0 值越小越先填充,按比例的话要求是 weight>0 ,俩种方法的宽度都是都是0dp。


2.相对布局 RelativeLayout 

很简单的 你想要移动的元素必须要有一个相对的参照物 或者他的父元素,这个布局的元素一般起始位置都是坐上角的0,0位置。可以指定一个元素在范围内的某一个参照元素的上下左右,也可以在父元素的上下左右,还可以以某个控件的上下左右来对齐。


3.帧布局 FrameLayout:

  FrameLayout是五大布局中最简单的一个布局,在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。就像,第一个TextView被第二个TextView完全遮挡,第三个TextView遮挡了第二个TextView的部分位置。


4.表格布局 TableLayout:

  TableLayout顾名思义,此布局为表格布局,适用于N行N列的布局格式。一个TableLayout由许多TableRow组成,一个TableRow就代表TableLayout中的一行, 有多少个就有多少行,行可以指定排列方向 同样和线性布局一样有 android:orientation="" 这个属性可以选择方向。起始就是和线性布局很象 也拥有比重。

5.绝对布局 absoluteLayout:

一般使用 android:layout_x和android:layout_y属性来调整位置,用于描述该子元素的坐标位置。屏幕左上角也是和相对布局一样坐标原点(0,0),第一个0代表横坐标,向右移动此值增大,第二个0代表纵坐标,向下移动,此值增大。在此布局中的子元素可以相互重叠。在实际开发中,通常不采用此布局格式,因为它的界面代码过于刚性,以至于有可能不能很好的适配各种终端。

以上所说 是关于五大布局的性质和特点。下面我来补充一个实体项目例子 :


项目是一款脸萌的APP 我们现在只是把界面布局做出来 就可以了。

首先先把封面做出来 我使用的是帧布局

都是通过ImageView来实现效果 正中间是一张图片引用 使用android:layout_gravity="center_vertical|center_horizontal"同时水平垂直居中

此外封面我还设置了线程延迟3秒跳转

public class MainActivity extends Activity implements Runnable{//  private final int SPLASH_DISPLAY_LENGHT = 10000;     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main);            new Thread(this).start(); //实现Runnable接口 直接New一个线程出来给MainActivity调用}@Overridepublic void run() { try {Thread.sleep(3000);//调用sleep()方法 延时3秒} catch (InterruptedException e) { e.printStackTrace();}Intent in= new Intent();  in.setClass(MainActivity.this, Choes.class); //然后跳转到下一个界面去startActivity(in);}
这就是跳过来的界面。

该界面我全部使用的是相对布局 RelativeLayout 各个元素之间都有参照比较方便排列

代码稍微有点点多 我就举一个中间的帅哥美女头像的例子来说吧。

<ImageView            android:id="@+id/img_boy"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:clickable="true"
<span style="white-space:pre"></span>    <!--这是男孩,在父布局里面相对它上方的那张id叫logo图片的左边对齐 -->            android:layout_alignLeft="@+id/logo"<span style="font-family: 'Microsoft YaHei', 微软雅黑, Arial, 'Lucida Grande', Tahoma, sans-serif; line-height: 24.0499992370605px;"></span><span style="font-family: 'Microsoft YaHei', 微软雅黑, Arial, 'Lucida Grande', Tahoma, sans-serif; line-height: 24.0499992370605px;">    </span>
<pre name="code" class="java" style="color: rgb(153, 0, 0); font-size: 14px; line-height: 24.046875px;"><span style="white-space:pre"></span>    <!--在父布局里面相对它上方的那张id叫wenzi图片的下方对齐 -->
android:layout_below="@+id/wenzi" android:src="@drawable/boy_selector" />  <ImageView
            android:id="@+id/img_girl"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"

<span style="white-space:pre"></span>    <!-- 相对男孩头像顶部对齐-->            android:layout_alignTop="@+id/img_boy"<span style="font-family: 'Microsoft YaHei', 微软雅黑, Arial, 'Lucida Grande', Tahoma, sans-serif; line-height: 24.0499992370605px;"></span><span style="font-family: 'Microsoft YaHei', 微软雅黑, Arial, 'Lucida Grande', Tahoma, sans-serif; line-height: 24.0499992370605px;">    </span>
<pre name="code" class="java" style="color: rgb(153, 0, 0); font-size: 14px; line-height: 24.046875px;">            <!-- 相对男孩头像右边对齐-->
            android:layout_toRightOf="@+id/img_boy"
            android:layout_centerHorizontal="true"
            android:src="@drawable/girl_selector" />
其他控件可以依葫芦画瓢一个一个相对解决。
           


0 0
原创粉丝点击