【Android】使用FrameLayout布局实现霓虹灯效果
2013-09-25 19:47
387 查看
FrameLayout是五大布局中最简单的一个布局。
在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置。
它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。
显示效果如下,第一个TextView被第二个TextView完全遮挡,第三个TextView遮挡了第二个TextView的部分位置。
我们可以利用这个FrameLayout布局的特性实现一个简单的霓虹灯效果。
在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置。
它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。
显示效果如下,第一个TextView被第二个TextView完全遮挡,第三个TextView遮挡了第二个TextView的部分位置。
我们可以利用这个FrameLayout布局的特性实现一个简单的霓虹灯效果。
Activity代码
package com.app.test01; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.View; public class FrameLayoutActivity extends Activity implements Runnable{ //定义5个颜色值 private int[] colors = new int[]{0xFFFF0000,0xFF0000FF,0xFF00FFFF,0xFFFF00FF,0xFF00FF00}; //每一个颜色值的索引 private int[] nextColorPoints = new int[]{1,2,3,4,0}; //当前值的索引 private int currentColorPoint = 0; private View[] views; private Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_frame); views = new View[]{findViewById(R.id.textView5),findViewById(R.id.textView4), findViewById(R.id.textView3),findViewById(R.id.textView2),findViewById(R.id.textView1)}; handler = new Handler(); handler.postDelayed(this, 300); } @Override public void run() { // TODO Auto-generated method stub int nextColorPoint = currentColorPoint; for (int i = views.length-1; i>=0; i--) { views[i].setBackgroundColor(colors[nextColorPoint]); nextColorPoint = nextColorPoints[nextColorPoint]; } currentColorPoint++; if (currentColorPoint == 5) { currentColorPoint = 0; } handler.postDelayed(this, 300); } }
布局文件
<?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" > <TextView android:id="@+id/textView1" android:layout_width="300dp" android:layout_height="300dp" android:text="TextView" android:layout_gravity="center"/> <TextView android:id="@+id/textView2" android:layout_width="240dp" android:layout_height="240dp" android:text="TextView" android:layout_gravity="center"/> <TextView android:id="@+id/textView3" android:layout_width="180dp" android:layout_height="180dp" android:text="TextView" android:layout_gravity="center"/> <TextView android:id="@+id/textView4" android:layout_width="120dp" android:layout_height="120dp" android:text="TextView" android:layout_gravity="center"/> <TextView android:id="@+id/textView5" android:layout_width="60dp" android:layout_height="60dp" android:text="TextView" android:layout_gravity="center"/> </FrameLayout>
效果图
相关文章推荐
- 【Android】使用FrameLayout布局实现霓虹灯效果
- android脚步---使用framelayout实现霓虹灯效果
- Android开发6:布局管理器3(帧布局FrameLayout-案例霓虹灯效果用到的知识点)
- android新特性:使用RecyclerViewHeader一键添加RecyclerView头布局并实现轮播效果
- 使用FrameLayOut来实现霓虹灯效果
- [置顶] FrameLayout(帧布局)实现闪烁霓虹灯效果
- 不使用android:windowSoftInputMode属性,实现软键盘遮盖最下面布局的效果
- 使用FrameLayout实现霓虹灯效果
- android学习笔记6:使用Framelayout实现霓虹灯效果
- Android开发之用帧布局和handler实现霓虹灯效果
- android 中使用TableLayout实现表单布局效果示例
- Android初学习 - 分别以Java code和XML两种方式给FrameLayout布局的Activity增加一个遮罩效果的实现
- android布局之帧布局-----霓虹灯效果实现
- Android笔记(2)---帧布局实现霓虹灯效果
- android新特性:使用RecyclerViewHeader一键添加RecyclerView头布局并实现轮播效果
- Android:帧布局实现霓虹灯的效果
- Android Design Library(二)使用CoordinatorLayout布局实现联动效果
- Android中ConvenientBanner的使用--获取本地图片 --(实现效果是自动轮播图片)
- android 使用OPENGL ES实现纹理拉伸效果-纹理映射基础
- android新特性:使用CollapsingToolbarLayout实现折叠效果及问题解决