android demo(二):霓虹燈

效果如下:



主要用到handle  和 framelayout佈局


xml文件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/v1"
        android:layout_gravity="center"
        android:width="320px"
        android:height="320px"
        android:background="#f00"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/v2"
        android:layout_gravity="center"
        android:width="280px"
        android:height="280px"
        android:background="#f00"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/v3"
        android:layout_gravity="center"
        android:width="240px"
        android:height="240px"
        android:background="#f00"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/v4"
        android:layout_gravity="center"
        android:width="200px"
        android:height="200px"
        android:background="#f00"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/v5"
        android:layout_gravity="center"
        android:width="160px"
        android:height="160px"
        android:background="#f00"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/v6"
        android:layout_gravity="center"
        android:width="120px"
        android:height="120px"
        android:background="#f00"
        />



</FrameLayout>


mainactivity:




public class MainActivity extends AppCompatActivity {

    private int currentColor=0;
    final int [] colors=new int[]{
        R.color.aliceblue,
        R.color.red,
            R.color.goldenrod,
            R.color.palegreen,
            R.color.darkgreen,
            R.color.khaki
    };
    final int [] names=new int[] {
            R.id.v1,
            R.id.v2,
            R.id.v3,
            R.id.v4,
            R.id.v5,
            R.id.v6
    };
    TextView[] views=new TextView[names.length];
    Handler handle=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if(msg.what == 0x123){
                for(int i=0;i<names.length;i++){
                    views[i].setBackgroundResource(colors[(i+currentColor) % names.length]);
                }
                currentColor++;
            }
            super.handleMessage(msg);
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.framelayout);
        for(int i=0;i<names.length;i++){
            views[i]= (TextView) findViewById(names[i]);
        }

        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                handle.sendEmptyMessage(0x123);
            }
        },0,200);}}

用到handler和msg機制 是一個學習handler機制的例子

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章