FrameLayout

FrameLayout通常只包含一个控件。如果我们在FrameLayout中设置多个控件,则第二个控件会堆叠在第一个控件上面,如此类推,一层一层地叠上去。下面的例子,我们在FrameLayout中设置两个控件,一个可视,另一个不可视也不占位置(GONE),点击,通过设置可视属性,实现点击切换图片的视觉效果。

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
    <ImageView android:id="@+id/imageViewOne" 
        android:src="@drawable/sunflower01" 
        android:scaleType="fitCenter" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"/>

<ImageView android:id="@+id/imageViewTwo" 
        android:src="@drawable/sky02" 
        android:scaleType="fitCenter" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:visibility="gone"/> 
</FrameLayout>

Java代码如下:

private ImageView  one = null;
private ImageView  two = null; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.ui_frame); 
    one = (ImageView)findViewById(R.id.imageViewOne); 
    two = (ImageView)findViewById(R.id.imageViewTwo); 
    one.setOnClickListener(new OnClickListener() {    
        @Override 
        public void onClick(View v) {  
            two.setVisibility(View.VISIBLE); 
            one.setVisibility(View.GONE);
 
        } 
    });

two.setOnClickListener(new OnClickListener() {      
        @Override 
        public void onClick(View v) {  
            one.setVisibility(View.VISIBLE);  
            two.setVisibility(View.GONE);
 
        } 
    }); 
}

FrameLayout一般用于单个控件,但是利用其将可控件堆叠的效果,可以设置一些特殊,如下面XML文件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
    <ImageView android:id="@+id/imageViewOne" 
        android:src="@drawable/sunflower01" 
        android:scaleType="fitCenter" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"/>

<ImageView android:id="@+id/imageViewTwo" 
        android:src="@drawable/png13" 
        android:scaleType="center" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" /> 
</FrameLayout>

相关链接: 我的Android开发相关文章

【转】 Pro Android学习笔记(二七):用户界面和控制(15):FrameLayout的更多相关文章

  1. 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout

    目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...

  2. 【转】 Pro Android学习笔记(二二):用户界面和控制(10):自定义Adapter

    目录(?)[-] 设计Adapter的布局 代码部分 Activity的代码 MyAdapter的代码数据源和构造函数 MyAdapter的代码实现自定义的adapter MyAdapter的代码继续 ...

  3. 【转】 Pro Android学习笔记(十九):用户界面和控制(7):ListView

    目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只 ...

  4. 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    目录(?)[-] xml控件代码重用include xml控件代码重用merge 横屏和竖屏landsacpe portrait xml控件代码重用:include 如果我们定义一个控件,需要在不同的 ...

  5. 【转】 Pro Android学习笔记(五二):ActionBar(5):list模式

    可以在action bar中加入spinner的下来菜单,有关spinner,可以参考Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner. list的样式和 ...

  6. Pro Android学习笔记 ActionBar(1):Home图标区

     Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...

  7. 【转】 Pro Android学习笔记(八二):了解Package(1):包和进程

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...

  8. 【转】 Pro Android学习笔记(六七):HTTP服务(1):HTTP GET

    目录(?)[-] HTTP GET小例子 简单小例子 出现异常NetworkOnMainThreadException 通过StrictMode进行处理 URL带键值对 Andriod应用可利用ser ...

  9. 【转】 Pro Android学习笔记(五五):调试和分析(3):adb命令、模拟器控制台和StrictMode

    目录(?)[-] adb命令 模拟器Console StrictMode adb命令 我们在学习SQLite的使用,介绍过部分adb命令的使用,见Pro Android学习笔记(五):了解Conten ...

  10. 【转】 Pro Android学习笔记(五六):配置变化

    目录(?)[-] Activity的destorycreate过程 Fragment的destorycreate过程 onSaveInstanceState saveFragmentInstanceS ...

随机推荐

  1. DNN 数据的表示

  2. Django 基于Ajax & form 简单实现文件上传

    前端实现 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="U ...

  3. Django 动态导入配置文件的类

    导入配置文件的类 #如何用字符串的形式动态导入模块 from importlib import import_module path=''api.cors.CORSMiddleware' #CORSM ...

  4. mysql mariadb 乱码

    mysql 创建临时表 CREATE TEMPORARY TABLE tmp_table SELECT COUNT(*) AS num FROM student_info GROUP BY LEFT( ...

  5. sql查询报错:Every derived table must have its own alias

    执行sql语句出现语法错误 Every derived table must have its own alias 翻译:每个派生表都有自己的别名

  6. 图片oom问题

    1.什么是OOM? 程序申请内存过大,虚拟机无法满足我们,然后自杀了.这个现象通常出现在大图片的APP开发,或者需要用到很多图片的时候.通俗来讲就是我们的APP需要申请一块内存来存放图片的时候,系统认 ...

  7. python编写脚本应用实例

    这里主要记录工作中应用python编写脚本的实例.由于shell脚本操作数据库(增.删.改.查)并不是十分直观方便,故这里采用python监控mysql状态,然后将状态保存到数据库中,供前台页面进行调 ...

  8. linux修改文件所属用户、用户组

    修改hive.log文件为hadoop用户,hadoop组 sudo chown 用户名:用户组 文件 sudo chown hadoop:hadoop hive.log 修改某个文件夹及其自文件 s ...

  9. DL三(向量化编程 Vectorized implementation)

    向量化编程实现 Vectorized implementation 一向量化编程 Vectorization 1.1 基本术语 向量化 vectorization 1.2 向量化编程(Vectoriz ...

  10. vc中调用Com组件的所有方法详解

    首先,对于Com组件的入门学习,可以看一下<Windows程序设计技术基础——MFC与.NET> 任哲编著的21世纪重点大学规划教材那本书,适合入门(虽然不一定会使用),了解些基础原理. ...