android小Demo--七彩霓虹燈效果

  七彩霓虹燈效果,基於網上的小Demo進行修改。

  在android項目values文件夾下建立文件colors.xml,配置七種顏色:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="blue">#0000ff</color>
    <color name="red">#ff0000</color>
    <color name="yellow">#ffff00</color>
    <color name="green">#8cd400</color>
    <color name="pink">#A020F0</color>
    <color name="orange">#ffa500</color>
    <color name="indigo">#4b0082</color>
</resources>

  MainActivity中代碼:

	// 當前顏色
	private int currentCount = 0;
	// 顏色ID數組
	private int[] colorList = new int[] { R.color.red, R.color.orange,
			R.color.yellow, R.color.green, R.color.blue, R.color.indigo,
			R.color.pink };
	//textview數組
	private TextView[] viewList = new TextView[colorList.length];

  Handler類 (消息處理器) 幫助主線程進行UI更新

Handler mHandler = new Handler() {

  @Override
  public void handleMessage(Message msg) {
    super.handleMessage(msg);
    if (msg.what == 1) {
      //更新textview顏色
      for (int i = 0; i < viewList.length; i++) {
        viewList[i].setBackgroundResource(colorList[(i + currentCount)% viewList.length]);
      }
      currentCount++;
    }
  }
};

  onCreate()方法中:

//實例化textview
for (int i = 0; i < colorList.length; i++) {
  viewList[i] = new TextView(this);
  //設置控件大小位置
  RelativeLayout.LayoutParams viewparams = new RelativeLayout.LayoutParams(700 - 100 * i, 700 - 100 * i);
  viewparams.addRule(RelativeLayout.CENTER_IN_PARENT);
  viewList[i].setLayoutParams(viewparams);
  //設置起始顏色
  viewList[i].setBackgroundResource(colorList[i]);
  layout.addView(viewList[i]);
}

 計時器的使用:

    //計時器 每200毫秒發送一次消息給主線程更新ui
    new Timer().schedule(new TimerTask() {
      @Override
    public void run() {
      mHandler.sendEmptyMessage(1);
    }
  , 0, 200);        

  運行demo便可展示七彩霓虹燈。

相關文章
相關標籤/搜索