Android布局之FrameLayout

转自:http://lzd20021683.iteye.com/blog/1264170

Android布局之FrameLayout

 

转:

 

FrameLayout:该布局container可以用来占有屏幕的某块区域来显示单一的对象,可以包含有多个widgets或者是container,但是所有被包含的widgets或者是container必须被固定到屏幕的左上角,并且一层覆盖一层,不能通过为一个widgets或者是container指定一个位置。Container所包含的widgets或者是container的队列是采用的堆栈的结构,最后加进来的widgets或者是container显示在最上面。所以后一个widgets或者是container将会直接覆盖在前一个widgets或者是container之上,把它们部份或全部挡住(除非后一个widgets或者是container是透明的,必须得到FrameLayout Container的允许)。

 

Xml代码  收藏代码
  1. <em class="actions"><?xml version="1.0" encoding="utf-8"?>  
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="@string/textview_first"  
  11.     />  
  12. <TextView    
  13.     android:layout_width="fill_parent"   
  14.     android:layout_height="wrap_content"   
  15.     android:text="@string/textview_second"  
  16.     android:textColor="#0000FF"   
  17.     />  
  18.   
  19. </FrameLayout></em>  

 

 

Xml代码  收藏代码
  1. <string name="textview_first">This is a first string.</string>  
  2. <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中的一个子元素指定一个位置但是你可以通过子控件自身控制其位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)此布局通常用于游戏或者处理一些画廊程序。如图:

 

 

 

 

 

 

 

Xml代码  收藏代码
  1. <!-- 帧布局,所以子控件均显示在屏幕的左上角,层叠式排列。此布局无法控制子控件的大小与位置,  
  2.       但是子控件自身可以控制其位置大小 -->  
  3. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:orientation="vertical"  
  5.     android:layout_width="fill_parent"  
  6.     android:layout_height="fill_parent"  
  7.     android:background="@drawable/bg"  
  8.     >  
  9.     <!-- 图片显示控件 并且在容器的右侧显示 -->  
  10.     <ImageView   
  11.         android:id="@+id/one_imageview"  
  12.         android:src="@drawable/one"  
  13.         android:layout_width="wrap_content"  
  14.         android:layout_height="wrap_content"  
  15.         android:layout_gravity="right"  
  16.         />  
  17.     <!-- 第二张图片显示在左侧底部 -->  
  18.     <ImageView   
  19.         android:id="@+id/two_imageview"  
  20.         android:src="@drawable/two"  
  21.         android:layout_width="wrap_content"  
  22.         android:layout_height="fill_parent"  
  23.         android:scaleType="fitEnd"  
  24.         />  
  25. </FrameLayout>  

 

 

Java代码  收藏代码
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.view.View;  
  4. import android.widget.ImageView;  
  5.   
  6. public class MainActivity extends Activity {  
  7.       
  8.     ImageView mOneImageView;  
  9.     ImageView mTwoImageView;  
  10.     /** Called when the activity is first created. */  
  11.     @Override  
  12.     public void onCreate(Bundle savedInstanceState) {  
  13.         super.onCreate(savedInstanceState);  
  14.         setContentView(R.layout.main);  
  15.           
  16.          mOneImageView=(ImageView) findViewById(R.id.one_imageview);  
  17.          mTwoImageView=(ImageView) findViewById(R.id.two_imageview);  
  18.           
  19.          //添加点击监听事件  
  20.         mOneImageView.setOnClickListener(new ImageView.OnClickListener(){  
  21.   
  22.             @Override  
  23.             public void onClick(View v) {  
  24.                 //点击one时隐藏自身 显示two  
  25.                 mTwoImageView.setVisibility(View.VISIBLE);  
  26.                 v.setVisibility(View.GONE);  
  27.             }  
  28.               
  29.         });  
  30.           
  31.         mTwoImageView.setOnClickListener(new ImageView.OnClickListener(){  
  32.   
  33.             @Override  
  34.             public void onClick(View v) {  
  35.                   
  36.                 mOneImageView.setVisibility(View.VISIBLE);  
  37.                 v.setVisibility(View.GONE);  
  38.             }  
  39.               
  40.         });  
  41.     }  
  42. }  

posted on 2013-02-23 12:15  kiao295338444  阅读(282)  评论(0编辑  收藏  举报

导航