android帧布局实现跑马灯

定义颜色值

values目录中创建colors

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorname1">#ff0000</color>  
    <color name="colorname2">#ff0020</color>  
    <color name="colorname3">#ff0040</color>  
    <color name="colorname4">#ff0060</color>  
    <color name="colorname5">#ff0080</color>  
    <color name="colorname6">#ff00a0</color>  
    <color name="colorname7">#ff00c0</color>
    <color name="colorname8">#ff00ff</color>
</resources>

布局的定义layout下

<?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/color0"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_gravity="center"  
        android:background="#ff20ff"  
        android:height="200dp"  
        android:width="200dp" />  
    <TextView  
        android:id="@+id/color1"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_gravity="center"  
        android:background="#ff20c0"  
        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="#ff20a0"  
        android:id="@+id/color2"/>  
    <TextView   
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:width="140dp"  
        android:height="140dp"  
        android:layout_gravity="center"  
        android:background="#ff2080"  
        android:id="@+id/color3"/>  
    <TextView   
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:width="120dp"  
        android:height="120dp"  
        android:layout_gravity="center"  
        android:background="#ff2060"  
        android:id="@+id/color4"/>  
    <TextView   
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:width="100dp"  
        android:height="100dp"  
        android:layout_gravity="center"  
        android:background="#ff2040"  
        android:id="@+id/color5"/>  
    <TextView   
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:width="80dp"  
        android:height="80dp"  
        android:layout_gravity="center"  
        android:background="#ff2020"  
        android:id="@+id/color6"/>  
    <TextView   
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:width="60dp"  
        android:height="60dp"  
        android:layout_gravity="center"  
        android:background="#ff2000"  
        android:id="@+id/color7"/>
</FrameLayout>

类中代码的实现

package cn.csdn.class3g;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
public class LampChangeActivity extends Activity {

     //从R.JAVA类中获取颜色值
     private int[] colornames=new int[]{
             R.color.colorname8,  
             R.color.colorname7,  
             R.color.colorname6,  
             R.color.colorname5,  
             R.color.colorname4,  
             R.color.colorname3,  
             R.color.colorname2,  
             R.color.colorname1,  
       };  

      //获取颜色布局
      private int[] colors=new int[]{  
              R.id.color0,  
              R.id.color1,  
              R.id.color2,  
              R.id.color3,  
              R.id.color4,  
              R.id.color5,  
              R.id.color6,
              R.id.color7
      };  
      View view[]=new View[8];  //创建view视图
      public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
            for(int i=0;i<8;i++){  
                view[i]=(View) findViewById(colors[i]);  
            }  //循环获取颜色边框
            final MyHandler myHandler=new MyHandler();  
            myHandler.sleep(100);  //停歇100毫秒
        }
      class MyHandler extends Handler{  
        int i=0;  
        public void handleMessage(Message msg){  
            i++;  
            if(i>=7){  
                i=1;  
            }  
            for(int m=8-i,n=0;m<8;m++,n++){  
                view[m].setBackgroundResource(colornames[n]);  
            }  //背景循环渐变
            for(int m=0;m<8-i;m++){  
                view[m].setBackgroundResource(colornames[m+i]);  
            }  
             // 背景变化完更新
            sleep(100);  
        }  
        public void sleep(int j){         
                sendMessageDelayed(obtainMessage(0),j);           
        }  
      }  

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值