Android2——布局管理器

来源:互联网 发布:手机淘宝网上怎么直播 编辑:程序博客网 时间:2024/06/03 18:21
020501  线性布局

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >




<TextView
android:id="@+id/myshow1" 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第一行字:"   
/>
<TextView
android:id="@+id/myshow2" 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="我是要做海贼王的男人!"   
/>


</LinearLayout>




020502     FRAMElAYOUT   框架布局管理器

//框架布局管理器在使用的时候,所有的组件会重叠在一起

在res.drawable-hdpi文件夹中添加apec.jpg图片


更改项目文件->res->layout->activity_main.xml文件:


<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >


    <ImageView
    android:id="@+id/myimg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/apec"
    />
    
    <EditText
      android:id="@+id/myinput"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="我是要做还贼王的男人哟~"   
    />
    
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />


</FrameLayout>




020503      表格布局管理器


step1_表格布局的显示:
更改项目文件->res->layout->activity_main.xml文件:
<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >


    <TableRow>
    <EditText
    android:id="@+id/myinput"
    android:layout_width = "wrap_content"
    android:layout_height="wrap_content"
    android:text="请输入检索关键字"
    />   
    <Button
    android:id="@+id/search"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="检索"
    /> 
  
    </TableRow>
   
    <View
    android:layout_height="2px"
    android:background="#FF909090"
  />


    <TableRow>
<TextView
android:id="@+id/infol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20px"
android:text="请选择编码方式:"
/>
<RadioGroup>
android:id="@+id/encoding"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:orientation = "vertical"
android:checkedButton="@+id/gbk"
<RadioButton
android:id="@+id/uit"
android:text="UIT编码"
/>
<RadioButton
android:id="@+id/gbk"
android:text="GBK编码"
/>
<RadioButton
android:id="@+id/Cplus"
android:text="C++编码"
/>
</RadioGroup>>
    </TableRow>>


</TableLayout>




step2:表格布局显示数据:
更改项目文件->res->layout->activity_main.xml文件:


<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >


    <TableRow>
<TextView
android:layout_column="0"
android:text="ID"
android:gravity="center_horizontal"
android:padding="8px"
/>
<TextView
android:layout_column="1"
android:text="姓名"
android:gravity="center_horizontal"
android:padding="8px"
/>
<TextView
android:layout_column="2"
android:text="Email"
android:gravity="center_horizontal"
android:padding="8px"
/>
<TextView
android:layout_column="3"
android:text="地址"
android:gravity="center_horizontal"
android:padding="2px"
/>
  
    </TableRow>
   
    <View
    android:layout_height="2px"
    android:background="#FF909090"
  />


    <TableRow>
<TextView
android:layout_column="0"
android:text="007"
android:gravity="center_horizontal"
android:padding="3px"
/>
<TextView
android:layout_column="1"
android:text="邦德"
android:gravity="center_horizontal"
android:padding="3px"
/>    
<TextView
android:layout_column="2"
android:text="hhs@qq.com"
android:gravity="center_horizontal"
android:padding="3px"
/>
<TextView
android:layout_column="3"
android:text="束河古镇"
android:gravity="center_horizontal"
android:padding="3px"
/>
    </TableRow>>
   


</TableLayout>


step_3:合理调整表格数据的显示
(即对表格布局的数据显示进行合理的数据伸缩显示,)
本例的实现较为简单,直接在<TableLayout>上添加语句:
android:shrinkColumns="2,3"
数字表示第n行,意为压缩第n行数据的显示


step_4:  隐藏表格的某几列数据
(对表格的数据中的某几列进行隐藏,并不予以显示)
在<TableLayout>中添加
 android:collapseColumns="0,3"
即对某几行数据不予以显示


step_5:    添加表格布局的背景图片
在<TableLayout>中添加
android:background="@drawable/mldn"


step_6      在MainActivity.java中递交更改设置表格布局
更改MainActivity.java文件:


package com.example.layoutproject;


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.ViewGroup;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;


public class MainActivity extends Activity {


private String titleData[][] = new String[][]{
{"ID","姓名","Email","地址"},
{"007","邦德","345@qq.com","丽江"},
{"008","小米渣","774@qq.com","昆明"},
{"009","大洋芋","9527@qq.com","昆明"}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TableLayout layout = new TableLayout(this);     //定义一个layout
TableLayout.LayoutParams layoutParam = new TableLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,//定义布局管理器参数
ViewGroup.LayoutParams.FILL_PARENT);
layout.setBackgroundResource(R.drawable.apec);//设置背景图片
for(int x = 0;x<this.titleData.length;x++)//予以表格数据进行填充
{
TableRow row = new TableRow(this);
for(int y = 0;y<this.titleData[x].length;y++)
{
TextView text = new TextView(this);
text.setText(this.titleData[x][y]);
row.addView(text, y);
}
layout.addView(row);
}
super.setContentView(layout,layoutParam);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


}


表格布局管理器在开发中是非常常见的,所以一定要学会如何使用它






020504      相对布局管理器
以主键ID确定组件的位置


step_1:
更改activity_main.xml文件
注:本demo1给RelativeLayout加了一个layout的android:id
<RelativeLayout
    android:id="@+id/layout"
     xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >


    <ImageView
    android:id="@+id/imga"
    android:layout_width="60px"
    android:layout_height="60px"
    android:src="@drawable/apec"
    />
    
    <ImageView
    android:id="@+id/imgb"
    android:layout_height="60px"
    android:layout_width="60px"
    android:src="@drawable/mldn"
    android:layout_toRightOf="@+id/imga"
    />


    <TextView
    android:id="@+id/text"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:text="我是要做海贼王的男人!"
    android:layout_below="@+id/imgb"
    android:layout_toRightOf="@+id/imga"
    />
</RelativeLayout>


step_2:
更改MainActivity.java文件:


package com.example.layoutproject_1;


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;


public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//读取已存在的布局管理器
super.setContentView(R.layout.activity_main);
//找到布局管理器
RelativeLayout rl = (RelativeLayout) super.findViewById(R.id.layout);
//定义布局管理器的参数
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT);
//接下来的的两条demo是为了定义新添加的组件放在什么位置
param.addRule(RelativeLayout.BELOW,R.id.mybut);
param.addRule(RelativeLayout.RIGHT_OF,R.id.imgb);
//定义一个文本组件
EditText text = new EditText(this);
//添加到相rl布局管理器中
rl.addView(text,param);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


}






020505     布局管理器的嵌套


更改layout文件:
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivity" >


    <Button
    android:id="@+id/mubut"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="我是要做海贼王的男人!!"
    />
    
    <LinearLayout
        
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="horizontal"
    tools:context=".MainActivity" >

        <ImageView
        android:id="@+id/imga"
        android:layout_width="120px"
        android:layout_height="60px"
        android:src="@drawable/haizeiwang"
        />
        <ImageView
        android:id="@+id/imgb"
        android:layout_width="120px"
        android:layout_height="60px"
        android:src="@drawable/dashabi"
        />
</LinearLayout>

    <TableLayout
        
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="horizontal"
    tools:context=".MainActivity" >

        <EditView
        android:id="@+id/edit"
        android:layout_width="150px"
        android:layout_height="60px"
        android:text="我是要做海贼王的男人!"
        />
        
        <Button
        android:id="@+id/mybut2"
        android:layout_height="30px"
        android:layout_width="40px"
        android:text="检索"
       
        />


</TableLayout>


</LinearLayout>




020506绝对定位布局管理器


Android2.3后就停止使用绝对布局管理器(AbsoluteLayout)了
0 0
原创粉丝点击