• Android学习笔记-----------布局(一)


    LinearLayout(线性布局)

    线性布局是android开发中的常用布局.

    通过设置android:orientation属性来确定线性布局的方向,vertical为垂直方向,horizontal为水平方向.

    由于布局的默认对齐方式是左上,若想设置控件的对齐方式,可以通过设置android:gravity属性和android:layout_gravity属性来确定控件的对齐方式.

    android:gravity属性是设置本元素中的子元素相对于它的对齐方式.

    android:layout_gravity属性是设置本元素相对于父元素的对齐方式.

    注:可以通过添加'|'来增强对齐方式,例:android:layout_gravity="right|botom"右下角对齐

    当orientation的值为vertical时layout_gravity只能设置水平方向上的对齐方式,同理当orientation的属性为horizontal时只能设置垂直方向上的值,layout_gravity不具备上面的增强对齐方式.

    权重(weight):

    在线性布局中,可以通过权重来设置一个控件在布局剩余空间中所占的比重.

    例:oriention属性的值为vertical,现有两个TextView的layout_weight都等于1那么这两个控件在垂直方向上各占屏幕一半.

    这里有一个疑问,当设置了TextView的height或者width的值为固定值或者为填充父元素后,会出现两个TextView在屏幕中所占的比例不是1:1,这也是验证了权重是设置一个控件在布局剩余空间中所占的比重一说.

    控件在屏幕中占比重可以按如下公式来计算:

    为了方便计算,这里默认orientation的值为vertical

    布局剩余空间 = 布局高度 - 所有控件的高度总和

    控件在布局中所占的空间 = 布局剩余空间 * (此控件的weight/所有控件的weight总和)

    接下来通过一个demo来总结线性布局的用法.

     效果如下

      1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      2     xmlns:tools="http://schemas.android.com/tools"
      3     android:layout_width="match_parent"
      4     android:layout_height="match_parent"
      5     android:orientation="vertical"
      6     android:background="@drawable/guide_login_bg">
      7     <LinearLayout 
      8         android:layout_width="match_parent"
      9         android:layout_height="wrap_content"
     10         android:orientation="vertical"
     11         android:layout_weight="2"
     12         >
     13         <ImageView 
     14             android:layout_width="wrap_content"
     15             android:layout_height="wrap_content"
     16             android:background="@drawable/no_login_head"
     17             android:layout_gravity="center_horizontal"
     18             />
     19         <TextView 
     20             android:layout_width="wrap_content"
     21             android:layout_height="wrap_content"
     22             android:text="登陆"
     23             android:textSize="20sp"
     24             android:textColor="#ffffff"
     25             android:layout_gravity="center_horizontal"
     26             />
     27     </LinearLayout>
     28     <TextView 
     29         android:layout_width="match_parent"
     30         android:layout_height="1dp"
     31         android:background="#ffffff"
     32         />
     33     <LinearLayout 
     34         android:layout_width="match_parent"
     35         android:layout_height="wrap_content"
     36         android:orientation="horizontal"
     37         android:layout_weight="1"
     38         >
     39         <ImageView 
     40             android:layout_width="wrap_content"
     41             android:layout_height="wrap_content"
     42             android:background="@drawable/icn_01"
     43             android:layout_gravity="center_vertical"
     44             />
     45         <TextView 
     46             android:layout_width="wrap_content"
     47             android:layout_height="wrap_content"
     48             android:text="我的收藏"
     49             android:textSize="15sp"
     50             android:textColor="#ffffff"
     51             android:layout_gravity="center_vertical"
     52             />
     53     </LinearLayout>
     54     <TextView 
     55         android:layout_width="match_parent"
     56         android:layout_height="1dp"
     57         android:background="#ffffff"
     58         />
     59      <LinearLayout 
     60         android:layout_width="match_parent"
     61         android:layout_height="wrap_content"
     62         android:orientation="horizontal"
     63         android:layout_weight="1"
     64         >
     65         <ImageView 
     66             android:layout_width="wrap_content"
     67             android:layout_height="wrap_content"
     68             android:background="@drawable/icn_02"
     69             android:layout_gravity="center_vertical"
     70             />
     71         <TextView 
     72             android:layout_width="wrap_content"
     73             android:layout_height="wrap_content"
     74             android:text="我的消息"
     75             android:textSize="15sp"
     76             android:textColor="#ffffff"
     77             android:layout_gravity="center_vertical"
     78             />
     79     </LinearLayout>
     80     <TextView 
     81         android:layout_width="match_parent"
     82         android:layout_height="1dp"
     83         android:background="#ffffff"
     84         />
     85      <LinearLayout 
     86         android:layout_width="match_parent"
     87         android:layout_height="wrap_content"
     88         android:orientation="horizontal"
     89         android:layout_weight="1"
     90         >
     91         <ImageView 
     92             android:layout_width="wrap_content"
     93             android:layout_height="wrap_content"
     94             android:background="@drawable/icn_03"
     95             android:layout_gravity="center_vertical"
     96             />
     97         <TextView 
     98             android:layout_width="wrap_content"
     99             android:layout_height="wrap_content"
    100             android:text="我的设置"
    101             android:textSize="15sp"
    102             android:textColor="#ffffff"
    103             android:layout_gravity="center_vertical"
    104             />
    105     </LinearLayout>
    106     <TextView 
    107         android:layout_width="match_parent"
    108         android:layout_height="1dp"
    109         android:background="#ffffff"
    110         />
    111      <LinearLayout 
    112         android:layout_width="match_parent"
    113         android:layout_height="wrap_content"
    114         android:orientation="horizontal"
    115         android:layout_weight="1"
    116         >
    117         <ImageView 
    118             android:layout_width="wrap_content"
    119             android:layout_height="wrap_content"
    120             android:background="@drawable/icn_04"
    121             android:layout_gravity="center_vertical"
    122             />
    123         <TextView 
    124             android:layout_width="wrap_content"
    125             android:layout_height="wrap_content"
    126             android:text="意见反馈"
    127             android:textSize="15sp"
    128             android:textColor="#ffffff"
    129             android:layout_gravity="center_vertical"
    130             />
    131     </LinearLayout>
    132     <TextView 
    133         android:layout_width="match_parent"
    134         android:layout_height="1dp"
    135         android:background="#ffffff"
    136         />
    137      <LinearLayout 
    138         android:layout_width="match_parent"
    139         android:layout_height="wrap_content"
    140         android:orientation="horizontal"
    141         android:layout_weight="1"
    142         >
    143         <ImageView 
    144             android:layout_width="wrap_content"
    145             android:layout_height="wrap_content"
    146             android:background="@drawable/icn_05"
    147             android:layout_gravity="center_vertical"
    148             />
    149         <TextView 
    150             android:layout_width="wrap_content"
    151             android:layout_height="wrap_content"
    152             android:text="更新软件"
    153             android:textSize="15sp"
    154             android:textColor="#ffffff"
    155             android:layout_gravity="center_vertical"
    156             />
    157     </LinearLayout>
    158     <TextView 
    159         android:layout_width="match_parent"
    160         android:layout_height="1dp"
    161         android:background="#ffffff"
    162         />
    163     <LinearLayout 
    164         android:layout_width="match_parent"
    165         android:layout_height="wrap_content"
    166         android:orientation="horizontal"
    167         android:layout_weight="1"
    168         >
    169         <ImageView 
    170             android:layout_width="wrap_content"
    171             android:layout_height="wrap_content"
    172             android:background="@drawable/icn_06"
    173             android:layout_gravity="center_vertical"
    174             />
    175         <TextView 
    176             android:layout_width="wrap_content"
    177             android:layout_height="wrap_content"
    178             android:text="关于我们"
    179             android:textSize="15sp"
    180             android:textColor="#ffffff"
    181             android:layout_gravity="center_vertical"
    182             />
    183     </LinearLayout>
    184 </LinearLayout>
  • 相关阅读:
    7. 流程控制
    6. 工作区域与包
    5. Go函数
    4. Go常量
    面试题1
    数据库三范式
    触发器和存储过程
    面试题
    js 程序执行与顺序实现详解 ,来自网上
    基础的优化数据库查询,个人笔记
  • 原文地址:https://www.cnblogs.com/Jhope/p/5279738.html
Copyright © 2020-2023  润新知