一、实现图
二、代码
2.1 xml
<?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/view0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#ff0000"
android:height="200dp"
android:width="200dp" />
<TextView
android:id="@+id/view1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#ff00ff"
android:height="180dp"
android:width="180dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="160dp"
android:height="160dp"
android:background="#bb0000"
android:id="@+id/view2"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="140dp"
android:height="140dp"
android:layout_gravity="center"
android:background="#990000"
android:id="@+id/view3"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="120dp"
android:height="120dp"
android:layout_gravity="center"
android:background="#770000"
android:id="@+id/view4"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="100dp"
android:height="100dp"
android:layout_gravity="center"
android:background="#550000"
android:id="@+id/view5"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="80dp"
android:height="80dp"
android:layout_gravity="center"
android:background="#330000"
android:id="@+id/view6"/>
<com.example.myapplication.MyTextView
android:id="@+id/title1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:text="@string/app_name"
android:textColor="@color/color1"
android:textSize="75sp"
android:textStyle="bold" />
</FrameLayout>
2.2 java
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class MainActivity extends Activity {
final 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,
};
final int[] names = new int[]{
R.id.view0,
R.id.view1,
R.id.view2,
R.id.view3,
R.id.view4,
R.id.view5,
R.id.view6,
};
TextView view[] = new TextView[7];
class MyHandler extends Handler {
int i = 0;
public void handleMessage(Message msg) {
i++;
if (i >= 6) {
i = 1;
}
for (int m = 7 - i, n = 0; m < 7; m++, n++) {
view[m].setBackgroundResource(colors[n]);
}
for (int m = 0; m < 7 - i; m++) {
view[m].setBackgroundResource(colors[m + i]);
}
sleep(100);
}
public void sleep(int j) {
sendMessageDelayed(obtainMessage(0), j);
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for (int i = 0; i < 7; i++) {
view[i] = findViewById(names[i]);
}
final MyHandler myHandler = new MyHandler();
myHandler.sleep(100);
}
}
import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;
import androidx.annotation.Nullable;
@SuppressLint("AppCompatCustomView")
public class MyTextView extends TextView {
public MyTextView(Context context) {
super(context);
}
public MyTextView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public MyTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public boolean isFocused() {
return true;
}
}