主函数里面,新建一个线程,控制改变背景色
package com.example.framelayout import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.os.Handler import android.os.Message import android.widget.TextView import java.lang.ref.WeakReference import java.util.* class MainActivity : AppCompatActivity() { internal val names = intArrayOf(R.id.view01,R.id.view02,R.id.view03,R.id.view04,R.id.view05,R.id.view06) private var views = arrayOfNulls<TextView>(names.size) private var handler:Handler = MyHandler(WeakReference(this)) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) for(i in names.indices) { views[i]=findViewById(names[i]) } //定义一个线程,周期改变textView的背景色 Timer().schedule(object:TimerTask() { override fun run() { //发送一条消息通知系统改变背景色 handler.sendEmptyMessage(0x123) } },0,200) } class MyHandler(private val activity: WeakReference<MainActivity>):Handler() { private var cur =0 //定义一个颜色数组 internal var colors = intArrayOf(R.color.color1, R.color.color2, R.color.color3,R.color.color4,R.color.color5,R.color.color6) override fun handleMessage(msg: Message?) { if(msg?.what==0x123) { for(i in activity.get()?.names?.indices!!) { activity.get()?.views!![i]?.setBackgroundResource(colors[(i+cur)%colors.size]) } cur++ } super.handleMessage(msg) } } }
界面代码是这样的,使用FrameLayout布局
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/view01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:width="320dp" android:height="320dp" android:background="@color/color1" /> <TextView android:id="@+id/view02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:width="280dp" android:height="280dp" android:background="@color/color2" /> <TextView android:id="@+id/view03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:width="240dp" android:height="240dp" android:background="@color/color3" /> <TextView android:id="@+id/view04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:width="200dp" android:height="200dp" android:background="@color/color4" /> <TextView android:id="@+id/view05" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:width="160dp" android:height="160dp" android:background="@color/color5" /> <TextView android:id="@+id/view06" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:width="120dp" android:height="120dp" android:background="@color/color5" /> </FrameLayout>