- Android 基础
- Android - 首页
- Android - 概述
- Android - 环境搭建
- Android - 架构
- Android - 应用组件
- Android - Hello World 示例
- Android - 资源
- Android - 活动(Activity)
- Android - 服务(Service)
- Android - 广播接收器(Broadcast Receiver)
- Android - 内容提供器(Content Provider)
- Android - 碎片(Fragment)
- Android - 意图/过滤器(Intents/Filters)
- Android - 用户界面
- Android - UI 布局
- Android - UI 控件
- Android - 事件处理
- Android - 样式和主题
- Android - 自定义组件
- Android 高级概念
- Android - 拖放
- Android - 通知
- 基于位置的服务
- Android - 发送邮件
- Android - 发送短信
- Android - 电话呼叫
- 发布 Android 应用
- Android 实用示例
- Android - 警报对话框
- Android - 动画
- Android - 音频捕获
- Android - AudioManager
- Android - 自动完成
- Android - 最佳实践
- Android - 蓝牙
- Android - 相机
- Android - 剪贴板
- Android - 自定义字体
- Android - 数据备份
- Android - 开发者工具
- Android - 模拟器
- Android - Facebook 集成
- Android - 手势
- Android - 谷歌地图
- Android - 图片效果
- Android - ImageSwitcher
- Android - 内部存储
- Android - JetPlayer
- Android - JSON 解析器
- Android - Linkedin 集成
- Android - 加载旋转器
- Android - 本地化
- Android - 登录屏幕
- Android - MediaPlayer
- Android - 多点触控
- Android - 导航
- Android - 网络连接
- Android - NFC 指南
- Android - PHP/MySQL
- Android - 进度圆圈
- Android - 进度条
- Android - 推送通知
- Android - RenderScript
- Android - RSS 阅读器
- Android - 屏幕录制
- Android - SDK 管理器
- Android - 传感器
- Android - 会话管理
- Android - 共享首选项
- Android - SIP 协议
- Android - 拼写检查器
- Android - SQLite 数据库
- Android - 支持库
- Android - 测试
- Android - 文本转语音
- Android - TextureView
- Android - Twitter 集成
- Android - UI 设计
- Android - UI 模式
- Android - UI 测试
- Android - WebView 布局
- Android - Wi-Fi
- Android - 小部件
- Android - XML 解析器
- Android 实用资源
- Android - 常见问题解答
- Android - 实用资源
- Android - 讨论
Android 框架布局
FrameLayout 旨在在屏幕上划分出一个区域,用于显示单个项目。通常,FrameLayout 应该用于容纳单个子视图,因为它很难以可扩展的方式组织子视图以适应不同的屏幕尺寸,而不会导致子视图相互重叠。
但是,您可以向 FrameLayout 添加多个子元素,并通过为每个子元素分配重力(使用 android:layout_gravity 属性)来控制它们在 FrameLayout 中的位置。
框架布局
FrameLayout 属性
以下是特定于 FrameLayout 的重要属性:
序号 | 属性 & 描述 |
---|---|
1 | android:id 这是唯一标识布局的 ID。 |
2 | android:foreground 这定义了要绘制在内容上的可绘制对象,可能的值可以是颜色值,例如“#rgb”、“#argb”、“#rrggbb”或“#aarrggbb”。 |
3 | android:foregroundGravity 定义要应用于前景可绘制对象的重力。重力默认为填充。可能的值包括顶部、底部、左侧、右侧、中心、垂直居中、水平居中等。 |
4 | android:measureAllChildren 确定在测量时是否测量所有子元素,或者仅测量处于 VISIBLE 或 INVISIBLE 状态的子元素。默认为 false。 |
示例
此示例将引导您完成简单的步骤,演示如何使用框架布局创建自己的 Android 应用程序。按照以下步骤修改我们在Hello World 示例章节中创建的 Android 应用程序:
步骤 | 描述 |
---|---|
1 | 您将使用 Android Studio IDE 创建一个 Android 应用程序,并将其命名为demo,放在包com.example.demo下,如Hello World 示例章节中所述。 |
2 | 修改res/layout/activity_main.xml文件的默认内容,以在框架布局中包含一些小部件。 |
3 | 无需更改 string.xml,Android 会处理默认常量。 |
4 | 运行应用程序以启动 Android 模拟器,并验证对应用程序所做的更改的结果。 |
以下是修改后的主活动文件src/com.example.demo/MainActivity.java的内容。此文件可以包含每个基本生命周期方法。
package com.example.demo; import android.os.Bundle; import android.app.Activity; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
以下是res/layout/activity_main.xml文件的内容:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:src="@drawable/ic_launcher" android:scaleType="fitCenter" android:layout_height="250px" android:layout_width="250px"/> <TextView android:text="Frame Demo" android:textSize="30px" android:textStyle="bold" android:layout_height="fill_parent" android:layout_width="fill_parent" android:gravity="center"/> </FrameLayout>
以下是res/values/strings.xml文件的内容,用于定义两个新的常量:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">demo</string> <string name="action_settings">Settings</string> </resources>
让我们尝试运行我们刚刚修改的Hello World!应用程序。我假设您在进行环境设置时创建了AVD。要从 Android Studio 运行应用程序,请打开项目的其中一个活动文件,然后单击工具栏中的运行图标。Android Studio 将应用程序安装到您的 AVD 上并启动它,如果您的设置和应用程序一切正常,它将显示以下模拟器窗口: