Android布局之FrameLayout
Android布局之FrameLayout
转:
FrameLayout:该布局container可以用来占有屏幕的某块区域来显示单一的对象,可以包含有多个widgets或者是container,但是所有被包含的widgets或者是container必须被固定到屏幕的左上角,并且一层覆盖一层,不能通过为一个widgets或者是container指定一个位置。Container所包含的widgets或者是container的队列是采用的堆栈的结构,最后加进来的widgets或者是container显示在最上面。所以后一个widgets或者是container将会直接覆盖在前一个widgets或者是container之上,把它们部份或全部挡住(除非后一个widgets或者是container是透明的,必须得到FrameLayout Container的允许)。
<?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" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/textview_first" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/textview_second" android:textColor="#0000FF" /></FrameLayout>
?
<string name="textview_first">This is a first string.</string> <string name="textview_second">This is a second string.</string>
?
如下图,其中TextView textview_second是最后FrameLayout最后加入的,所以该TextView应该是覆盖整个屏幕的,TextView textview_first被其覆盖。如下图:

?
?
转:http://www.iteye.com/topic/1114402
?
FrameLayout:帧布局
<!-- 帧布局,所以子控件均显示在屏幕的左上角,层叠式排列。此布局无法控制子控件的大小与位置, 但是子控件自身可以控制其位置大小 --><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg" > <!-- 图片显示控件 并且在容器的右侧显示 --><ImageView android:id="@+id/one_imageview"android:src="@drawable/one"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="right"/><!-- 第二张图片显示在左侧底部 --><ImageView android:id="@+id/two_imageview"android:src="@drawable/two"android:layout_width="wrap_content"android:layout_height="fill_parent"android:scaleType="fitEnd"/></FrameLayout>
import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.ImageView;public class MainActivity extends Activity {ImageView mOneImageView;ImageView mTwoImageView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mOneImageView=(ImageView) findViewById(R.id.one_imageview); mTwoImageView=(ImageView) findViewById(R.id.two_imageview); //添加点击监听事件 mOneImageView.setOnClickListener(new ImageView.OnClickListener(){@Overridepublic void onClick(View v) {//点击one时隐藏自身 显示twomTwoImageView.setVisibility(View.VISIBLE);v.setVisibility(View.GONE);} }); mTwoImageView.setOnClickListener(new ImageView.OnClickListener(){@Overridepublic void onClick(View v) {mOneImageView.setVisibility(View.VISIBLE);v.setVisibility(View.GONE);} }); }}