Android中的布局方式之 框架布局管理器


        FrameLayout 布局,又叫帧布局,就是在屏幕上开辟一个区域以填充所有的组件,但是FrameLayout会将所有的组件都放在屏幕的左上角,而且所有的组件通过层叠的方式来进行显示,也就是说,他们都是从从上角处开始放,然后一个覆盖着一个的方式。

看看xml文件,我们只是把Linelayout换成了Framelayout其它都没变。如下:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ImageView
		android:id="@+id/myimg" 
		android:src="@drawable/mldn_3g"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"/>
	<EditText
		android:id="@+id/myinput" 
		android:text="请输入您的姓名..."
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"/>
	<Button
		android:id="@+id/mybut"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content" 
		android:text="按我" />
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</FrameLayout>
结果如下:


 

这里当然也可以想前面用代码的方式来进行布局,效果也一样,代码如下:

package com.andy.android.framelayout;

import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;

public class FrameLayoutTestActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FrameLayout layout = new FrameLayout(this); // 定义帧布局管理器
		FrameLayout.LayoutParams layoutParam = new FrameLayout.LayoutParams(
				ViewGroup.LayoutParams.FILL_PARENT,
				ViewGroup.LayoutParams.FILL_PARENT); // 定义布局管理器的参数
		FrameLayout.LayoutParams viewParam = new FrameLayout.LayoutParams(
				ViewGroup.LayoutParams.WRAP_CONTENT,
				ViewGroup.LayoutParams.WRAP_CONTENT); // 定义显示组件的参数
		ImageView img = new ImageView(this); // 定义图片组件
		img.setImageResource(R.drawable.mldn_3g); // 定义显示的图片
		EditText edit = new EditText(this); // 定义文本输入组件
		edit.setText("请输入您的姓名..."); // 设置显示的文字
		Button but = new Button(this); // 定义按钮
		but.setText("按我"); // 设置按钮的文字
		layout.addView(img, viewParam); // 增加组件
		layout.addView(edit, viewParam); // 增加组件
		layout.addView(but, viewParam); // 增加组件
		super.setContentView(layout, layoutParam); // 向屏幕上增加布局管理器
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值