一.FrameLayout(帧布局)重点:
FrameLayout(帧布局)直接继承了ViewGroup所代表,这个布局会默认把控件放在屏幕上的左上角的区域,后续添加的控件会覆盖前一个,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个控件
二.FrameLayout(帧布局)常用属性:
android:foreground:设置改帧布局容器的前景图像
android:foregroundGravity:设置前景图像显示的位置
三.霓虹灯效果
<?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/view01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="190pt"
android:height="190pt"
android:background="#f00"
/>
<TextView
android:id="@+id/view02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="160pt"
android:height="160pt"
android:background="#0f0"
/>
<TextView
android:id="@+id/view03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="130pt"
android:height="130pt"
android:background="#00f"
/>
<TextView
android:id="@+id/view04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="100pt"
android:height="100pt"
android:background="#ff0"
/>
<TextView
android:id="@+id/view05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="70pt"
android:height="70pt"
android:background="#f0f"
/>
<TextView
android:id="@+id/view06"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="40pt"
android:height="40pt"
android:background="#0ff"
/>
</FrameLayout>
package com.dezai.framelayout;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
private int currentColor=0;
final int[] colors=new int[]{
R.color.color1,R.color.color2,R.color.color3,R.color.color4,R.color.color5,R.color.color6
};
final int[] names=new int[]{
R.id.view01,R.id.view02,R.id.view03,R.id.view04,R.id.view05,R.id.view06,};
TextView[] views=new TextView[names.length];
Handler handler=new Handler()
{
@Override
public void handleMessage(Message msg)
{
//表明消息来自本程序所发送的
if(msg.what==0x123)
{
for(int i=0; i<names.length;i++)
{
views[i].setBackgroundResource(colors[(i+currentColor)% names.length]);
}
currentColor++;
}
super.handleMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for (int i=0;i<names.length;i++)
{
views[i]=(TextView) findViewById(names[i]);
}
//定义一个线程周期性地改变currentColor变量值
new Timer().schedule(new TimerTask() {
@Override
public void run() {
//发送一条空消息通知系统改变6个TextView组件的背景色
handler.sendEmptyMessage(0x123);
}
},0,500);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。