标签:
FrameLayout单桢布局
FrameLayout对象好比一块在屏幕上提前预定好的空白区域,可以将一些元素填充在里面,如图片。所有元素都被放置在FrameLayout区域的最左上区域,而且无法为这些元素制指定一个确切的位置,若有多个元素,那么后面的元素会重叠显示在前一个元素上。
我们下面通过XML布局和Java代码布局两种方式分别举例:
一、XML方式布局
1、首先把a.jpg图片复制到res/drawable-hdpi文件夹内。
2、创建一个空白Activity
3、打开“res/layout/activity_main.xml”文件,修改成以下代码。
(1)第①部分
<?xml version="1.0" encoding="utf-8">,每个XML文档都由XML序言开始,在前面的代码中的第一行便是XML序言,<?xml version="1.0">。这行代码表示按照1.0版本的XML规则进行解析。encoding = "utf-8"表示此xml文件采用utf-8的编码格式。编码格式也可以是GB2312。
(2)第②部分
<LinearLayout …… 表示采用单帧布局管理器。
(3)第③部分
android:layout_width="match_parent" android:layout_height="match_parent"表示布局管理器宽度和高充将填充整个屏幕宽度和高度。
4、从工具栏向activity拖出1个图像ImageView、1个按钮Button。
5、打开“res/layout/activity_main.xml”文件。
(1)第①部分
ID为imageView1的图像ImageView显示一幅图片。
(2)第②部分
ID为button1的按钮Button显示一个按钮。
由于是单帧FrameLayout布局,这两个控件不能够进行任何布局,只能以左上角为基准,重叠摆放。
6、最终显示效果如下:
如果FrameLayout单帧布局仅此而已,则可以说毫无价值!
编写 FreamTestActivity.java 类
说明:
由于 FrameLayout 中后出现的 UI 控件会覆盖前面出现的 UI 控件,每次只能显示一个 UI 控件,因此,我们可以通过在 Activity 中对每次显示的图片内容进行切换以实现动画效果 。 或许你会想到开启一条线程来控制切换 , 但在非主线程中不能更新 UI 界面 , 所以 , 我们使用了Android 提供的消息通讯类 Handler 。该类可以实现非主线程和负责 UI 的主线程之间的通信 ,进而间接实现非主线程更新 UI 界面。由于 sleep 方法中的sendMessageDelayed(obtainMessage(0), delayMillis); 本身会延迟发送一个消息 , 该消息
会被框架传递给 handleMessage 事件 。 我们在 handleMessage() 方法中再次调用 sleep() 方法 ,形成一个循环调用 。 在我们对界面进行点击之前 , 两个方法会一直循环调用 。 前景图片也会不断的切换,进而实现动画的效果。
点击图片之后,小鸟停止飞翔。
标签:
原文地址:http://www.cnblogs.com/qi123/p/4553410.html