zoukankan      html  css  js  c++  java
  • 2、复杂布局实现

    DEMO1:霓虹灯效果

    要点:FrameLayout层叠嵌套,类似于 Photoshop的图层。 

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="fill_parent" android:layout_height="fill_parent">
     4     <TextView android:id="@+id/textview1" android:layout_width="300dp"
     5         android:layout_height="300dp" android:layout_gravity="center" />
     6     <TextView android:id="@+id/textview2" android:layout_width="240dp"
     7         android:layout_height="240dp" android:layout_gravity="center" />
     8     <TextView android:id="@+id/textview3" android:layout_width="180dp"
     9         android:layout_height="180dp" android:layout_gravity="center" />
    10     <TextView android:id="@+id/textview4" android:layout_width="120dp"
    11         android:layout_height="120dp" android:layout_gravity="center" />
    12     <TextView android:id="@+id/textview5" android:layout_width="60dp"
    13         android:layout_height="60dp" android:layout_gravity="center" />
    14 </FrameLayout>
    15  
     1 package cn.eoe.neonlight;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.os.Handler;
     6 import android.view.View;
     7 
     8 public class Main extends Activity implements Runnable {
     9     // 5个TextView的颜色值
    10     private int[] colors = new int[] { 0xFFFF0000, 0xFF00FF00, 0xFF0000FF,
    11             0xFFFF00FF, 0xFF00FFFF };
    12     // 每一次颜色的下一个颜色的索引,最后一个颜色的下一个颜色是第一个颜色,相当于循环链表
    13     private int[] nextColorPointers = new int[] { 1, 2, 3, 4, 0 };
    14     private View[] views; // 保存5个TextView
    15     // 当前颜色索引(指针)
    16     private int currentColorPointer = 0; 
    17     private Handler handler;
    18 
    19     @Override
    20     public void run() {
    21         int nextColorPointer = currentColorPointer;
    22         for (int i = views.length - 1; i >= 0; i--) {
    23             // 设置当前TextView的背景颜色
    24             views[i].setBackgroundColor(colors[nextColorPointers[nextColorPointer]]);
    25             // 获得下一个TextView的背景颜色值的索引(指针)
    26             nextColorPointer = nextColorPointers[nextColorPointer];
    27         }
    28         currentColorPointer++;
    29         if (currentColorPointer == 5)
    30             currentColorPointer = 0;
    31         // 每300毫秒循环一次
    32         handler.postDelayed(this, 300); 
    33     }
    34 
    35     @Override
    36     public void onCreate(Bundle savedInstanceState) {
    37         super.onCreate(savedInstanceState);
    38         setContentView(R.layout.main);
    39         // 初始化views数组
    40         views = new View[] { findViewById(R.id.textview5),
    41                 findViewById(R.id.textview4), findViewById(R.id.textview3),
    42                 findViewById(R.id.textview2), findViewById(R.id.textview1) };
    43         handler = new Handler();
    44         // 每300毫秒循环一次
    45         handler.postDelayed(this, 300); 
    46 
    47     }
    48 }

    DEMO2:实现屏幕四角和居中摆放控件的布局

    要点:分而治之。将屏幕在垂直方向分为3部分。 然后再将上下两部分各再分成左右两部分。 

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="fill_parent"
     4     android:layout_height="fill_parent"
     5     android:orientation="vertical" >
     6 
     7     <!-- 上部 -->
     8 
     9     <LinearLayout
    10         android:layout_width="fill_parent"
    11         android:layout_height="fill_parent"
    12         android:layout_weight="1"
    13         android:orientation="horizontal" >
    14 
    15         <LinearLayout
    16             android:layout_width="fill_parent"
    17             android:layout_height="fill_parent"
    18             android:layout_weight="1"
    19             android:orientation="vertical" >
    20 
    21             <Button
    22                 android:layout_width="wrap_content"
    23                 android:layout_height="wrap_content"
    24                 android:layout_gravity="left"
    25                 android:text="左上按钮" />
    26         </LinearLayout>
    27 
    28         <LinearLayout
    29             android:layout_width="fill_parent"
    30             android:layout_height="fill_parent"
    31             android:layout_weight="1"
    32             android:orientation="vertical" >
    33 
    34             <Button
    35                 android:layout_width="wrap_content"
    36                 android:layout_height="wrap_content"
    37                 android:layout_gravity="right"
    38                 android:text="右上按钮" />
    39         </LinearLayout>
    40     </LinearLayout>
    41     <!-- 中部 -->
    42 
    43     <LinearLayout
    44         android:layout_width="fill_parent"
    45         android:layout_height="fill_parent"
    46         android:layout_weight="1"
    47         android:gravity="center"
    48         android:orientation="vertical" >
    49 
    50         <Button
    51             android:layout_width="wrap_content"
    52             android:layout_height="wrap_content"
    53             android:text="中心按钮" />
    54     </LinearLayout>
    55     <!-- 底部 -->
    56 
    57     <LinearLayout
    58         android:layout_width="fill_parent"
    59         android:layout_height="fill_parent"
    60         android:layout_weight="1"
    61         android:orientation="horizontal" >
    62 
    63         <LinearLayout
    64             android:layout_width="fill_parent"
    65             android:layout_height="fill_parent"
    66             android:layout_weight="1"
    67             android:gravity="left|bottom"
    68             android:orientation="vertical" >
    69 
    70             <Button
    71                 android:layout_width="wrap_content"
    72                 android:layout_height="wrap_content"
    73                 android:text="左下按钮" />
    74         </LinearLayout>
    75 
    76         <LinearLayout
    77             android:layout_width="fill_parent"
    78             android:layout_height="fill_parent"
    79             android:layout_weight="1"
    80             android:gravity="right|bottom"
    81             android:orientation="vertical" >
    82 
    83             <Button
    84                 android:layout_width="wrap_content"
    85                 android:layout_height="wrap_content"
    86                 android:text="右下按钮" />
    87         </LinearLayout>
    88     </LinearLayout>
    89 
    90 </LinearLayout>

    DEMO3:更复杂的线性布局

      1 <?xml version="1.0" encoding="utf-8"?>
      2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      3     android:layout_width="fill_parent"
      4     android:layout_height="fill_parent"
      5     android:orientation="vertical" >
      6 
      7     <LinearLayout
      8         android:layout_width="fill_parent"
      9         android:layout_height="fill_parent"
     10         android:layout_weight="1"
     11         android:orientation="vertical" >
     12 
     13         <LinearLayout
     14             android:layout_width="fill_parent"
     15             android:layout_height="fill_parent"
     16             android:layout_weight="1"
     17             android:orientation="horizontal" >
     18 
     19             <LinearLayout
     20                 android:layout_width="fill_parent"
     21                 android:layout_height="fill_parent"
     22                 android:layout_weight="1"
     23                 android:orientation="vertical" >
     24 
     25                 <Button
     26                     android:layout_width="wrap_content"
     27                     android:layout_height="wrap_content"
     28                     android:layout_gravity="left"
     29                     android:text="左上按钮" />
     30             </LinearLayout>
     31 
     32             <LinearLayout
     33                 android:layout_width="fill_parent"
     34                 android:layout_height="fill_parent"
     35                 android:layout_weight="1"
     36                 android:orientation="vertical" >
     37 
     38                 <Button
     39                     android:layout_width="wrap_content"
     40                     android:layout_height="wrap_content"
     41                     android:layout_gravity="right"
     42                     android:text="右上按钮" />
     43             </LinearLayout>
     44         </LinearLayout>
     45 
     46         <LinearLayout
     47             android:layout_width="fill_parent"
     48             android:layout_height="fill_parent"
     49             android:layout_weight="1"
     50             android:gravity="center"
     51             android:orientation="vertical" >
     52 
     53             <Button
     54                 android:layout_width="wrap_content"
     55                 android:layout_height="wrap_content"
     56                 android:text="中心按钮" />
     57         </LinearLayout>
     58 
     59         <LinearLayout
     60             android:layout_width="fill_parent"
     61             android:layout_height="fill_parent"
     62             android:layout_weight="1"
     63             android:orientation="horizontal" >
     64 
     65             <LinearLayout
     66                 android:layout_width="fill_parent"
     67                 android:layout_height="fill_parent"
     68                 android:layout_weight="1"
     69                 android:gravity="left|bottom"
     70                 android:orientation="vertical" >
     71 
     72                 <Button
     73                     android:layout_width="wrap_content"
     74                     android:layout_height="wrap_content"
     75                     android:text="左下按钮" />
     76             </LinearLayout>
     77 
     78             <LinearLayout
     79                 android:layout_width="fill_parent"
     80                 android:layout_height="fill_parent"
     81                 android:layout_weight="1"
     82                 android:gravity="right|bottom"
     83                 android:orientation="vertical" >
     84 
     85                 <Button
     86                     android:layout_width="wrap_content"
     87                     android:layout_height="wrap_content"
     88                     android:text="右下按钮" />
     89             </LinearLayout>
     90         </LinearLayout>
     91     </LinearLayout>
     92 
     93     <LinearLayout
     94         android:layout_width="fill_parent"
     95         android:layout_height="fill_parent"
     96         android:layout_weight="1"
     97         android:orientation="vertical" >
     98 
     99         <ImageView
    100             android:layout_width="fill_parent"
    101             android:layout_height="fill_parent"
    102             android:layout_weight="1"
    103             android:src="@drawable/background" />
    104 
    105         <EditText
    106             android:layout_width="fill_parent"
    107             android:layout_height="wrap_content"
    108             android:hint="请在这里输入文本" />
    109     </LinearLayout>
    110 
    111 </LinearLayout>

    DEMO4:实现Panel效果 

    要点:LinearLayout和RelativeLayout相互配合。 

     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     android:layout_width="fill_parent"
     3     android:layout_height="fill_parent" >
     4 
     5     <!-- 顶部 -->
     6 
     7     <RelativeLayout
     8         android:id="@+id/relativelayout_top"
     9         android:layout_width="fill_parent"
    10         android:layout_height="50dp"
    11         android:layout_alignParentTop="true"
    12         android:background="#FF0000"
    13         android:gravity="center" >
    14 
    15         <TextView
    16             android:id="@+id/view_top"
    17             android:layout_width="wrap_content"
    18             android:layout_height="wrap_content"
    19             android:text="顶部标题"
    20             android:textColor="#FFFF00" />
    21     </RelativeLayout>
    22     <!-- 底部 -->
    23 
    24     <RelativeLayout
    25         android:id="@+id/relativelayout_bottom"
    26         android:layout_width="fill_parent"
    27         android:layout_height="50dp"
    28         android:background="#00FFFF"
    29         android:layout_alignParentBottom="true"
    30         android:gravity="center" >
    31 
    32        <TextView
    33             android:id="@+id/view_top"
    34             android:layout_width="wrap_content"
    35             android:layout_height="wrap_content"
    36             android:text="底部标题"
    37             android:textColor="#0000FF" />
    38     </RelativeLayout>
    39     <!-- 中部 -->
    40 
    41     <LinearLayout
    42         android:layout_width="fill_parent"
    43         android:layout_height="fill_parent"
    44         android:layout_above="@id/relativelayout_bottom"
    45         android:layout_below="@+id/relativelayout_top"
    46         android:orientation="horizontal" >
    47 
    48         <!-- 中部左侧栏 -->
    49 
    50         <RelativeLayout
    51             android:id="@+id/relativelayout_middleleft"
    52             android:layout_width="200dp"
    53             android:layout_height="fill_parent"
    54             android:layout_alignParentLeft="true"
    55             android:background="#FF00FF"
    56             android:gravity="center"
    57             android:orientation="vertical" >
    58 
    59             <TextView
    60                 android:id="@+id/view_middleleft"
    61                 android:layout_width="wrap_content"
    62                 android:layout_height="wrap_content"
    63                 android:text="左侧标题"
    64                 android:textColor="#FFFFFF" />
    65         </RelativeLayout>
    66         <!-- 中部主框架 -->
    67 
    68         <LinearLayout
    69             android:layout_width="fill_parent"
    70             android:layout_height="fill_parent"
    71             android:layout_toRightOf="@id/relativelayout_middleleft"
    72             android:background="#eeccee"
    73             android:gravity="center"
    74             android:orientation="vertical" >
    75 
    76             <TextView
    77                 android:layout_width="wrap_content"
    78                 android:layout_height="wrap_content"
    79                 android:text="右侧标题"
    80                 android:textColor="#000066" />
    81         </LinearLayout>
    82     </LinearLayout>
    83 
    84 </RelativeLayout>
  • 相关阅读:
    服务器最大TCP连接数及调优汇总
    提升linux下TCP服务器并发连接数(limit)
    Linux systemd limits
    CENTOS/RHEL 7 系统中设置SYSTEMD SERVICE的ULIMIT资源限制
    查看CPU/CACHE的拓扑结构
    nmon 加权平均法
    关于游戏的开发流程
    关于Unity中的旋涡特效的制作(捕鱼达人3技术)(专题八)
    关于Unity中鼠标选取物体的解决方案
    关于Unity中的声音管理模块(专题七)
  • 原文地址:https://www.cnblogs.com/androidsj/p/3871233.html
Copyright © 2011-2022 走看看