Android幀布局實現霓虹燈的效果

來源:互聯網
上載者:User

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檔案

<?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() 方法 ,形成一個迴圈調用 。 在我們對介面進行點擊之前 , 兩個方法會一直迴圈調用 。 前景圖片也會不斷的切換,進而實現霓虹燈的效果。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.