(待修改)FrameLayout实现霓虹灯效果+handleMessage+TimerTask

来源:互联网 发布:中信信用卡淘宝v卡 编辑:程序博客网 时间:2024/06/05 03:03

在布局文件中利用帧布局建立7个重叠的宽度递减的TextView
建立颜色渐变的颜色id值的数组
利用TimerTask周期性的更改当前颜色值以及发送消息,通知系统执行改变7个组件的颜色

public class ColorChangeLightActivity extends AppCompatActivity {    private int currentColor=0;    //了利用colors.xml中设定好的颜色来建立颜色数组    private int[] colors=new int[]            {                    R.color.color7,                    R.color.color6,                    R.color.color5,                    R.color.color4,                    R.color.color3,                    R.color.color2,                    R.color.color1            };    //建立布局中7个textview的id的数组    private int[] viewNames=new int[]            {                    R.id.view01,                    R.id.view02,                    R.id.view03,                    R.id.view04,                    R.id.view05,                    R.id.view06,                    R.id.view07            };    //注意初始化数组时没有具体的每一项的话要指定大小    TextView[] views=new TextView[7];    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_color_change_light);        for(int i=0;i<7;++i)        {            views[i]=(TextView)findViewById(viewNames[i]);        }        final Handler handler=new Handler()        {            @Override            public void handleMessage(Message msg)            {                if(msg.what==0x1122)                {                    for(int i=0;i<7-currentColor;++i)                    {                        //为什么setBackgroundColor不行                        views[i].setBackgroundResource(colors[i+currentColor]);                    }                    for(int i=7-currentColor,j=0;i<7;++i,++j)                    {                        views[i].setBackgroundResource(colors[j]);                    }                }                super.handleMessage(msg);            }        };        new Timer().schedule(new TimerTask()        {            @Override            public void run()            {                currentColor++;                if(currentColor>=6)                {                    currentColor=0;                }                Message m=new Message();                m.what=0x1122;                handler.sendMessage(m);            }        },0,100);    }}

这里写图片描述

这里写图片描述

那个handle,Timer还完全不知道是什么==

原创粉丝点击