效果圖:
1、首先是main.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"/>
-
-
-
-
-
- </FrameLayout>
強調:android:layout_gravity="center" textview中的內容居中
2、創建一個colors.xml文件
view plaincopy to clipboardprint?
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <color name="color1">#330000</color>
- <color name="color2">#550000</color>
- <color name="color3">#770000</color>
- <color name="color4">#990000</color>
- <color name="color5">#bb0000</color>
- <color name="color6">#dd0000</color>
- <color name="color7">#ff0000</color>
- </resources>
3、源代碼LayoutChen.java
- package cn.csdn.activity;
-
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.widget.TextView;
-
- public class LayoutChenActivity 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.main);
- for(int i=0;i<7;i++){
- view[i]=(TextView) findViewById(names[i]);
- }
- final MyHandler myHandler=new MyHandler();
- myHandler.sleep(100);
-
- }
使用了Android 提供的消息通訊類 Handler 。該類可以實現非主線程和負責 UI 的主線程之間的通信 ,進而間接實現非主線程更新 UI 界面。由於 sleep 方法中的
sendMessageDelayed(obtainMessage(0), delayMillis); 本身會延遲發送一個消息 , 該消息會被框架傳遞給 handleMessage 事件 。 我們在 handleMessage() 方法中再次調用 sleep() 方法 ,形成一個循環調用 。 在我們對界面進行點擊之前 , 兩個方法會一直循環調用 。 前景圖片也會不斷的切換,進而實現霓虹燈的效果。