在Activity画面中间添加闪烁的文字,

2014-11-24 00:57:58 · 作者: · 浏览: 0

项目中需要添加在pc版上面的差不多的效果。比如在员工练习模式下,画面正中间不断闪烁几个汉字:“练习模式”.


或许这种方法不是很好,但我确实是这样做的。假定activity画面比较复杂的情况下。


代码其实很简单,直接贴上来了。

package com.example.sqlitepagetest;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;

/**
 * 

*

* 下午11:52:59 * * @auther dalvikCoder */ public class Activity2 extends Activity { Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity2); btn = (Button) findViewById(R.id.btntrain); addAliveText(); } private TextView aliveText; /** 文字闪烁线程 **/ private TextThread textThread = null; private void addAliveText() { aliveText = new TextView(this); aliveText.setText("练习模式"); aliveText.setTextColor(Color.RED); aliveText.setTextSize(50); aliveText.setBackgroundColor(Color.TRANSPARENT); aliveText.setGravity(Gravity.CENTER | Gravity.CENTER_VERTICAL); FrameLayout.LayoutParams p = new FrameLayout.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, Gravity.CENTER | Gravity.CENTER_VERTICAL); this.addContentView(aliveText, p); if (textThread == null) { textThread = new TextThread(); textThread.start(); } } /** * @author 练习模式文字闪烁 */ public class TextThread extends Thread { @Override public void run() { do { try { Thread.sleep(1 * 1000);// 每隔1s闪现一次 Message msg = new Message(); msg.what = 6; timeHandler.sendMessage(msg); } catch (InterruptedException e) { e.printStackTrace(); } } while (true); } } private Handler timeHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 6: if (aliveText.getVisibility() == View.VISIBLE) { aliveText.setVisibility(View.INVISIBLE); } else if (aliveText.getVisibility() == View.INVISIBLE) { aliveText.setVisibility(View.VISIBLE); } break; } } }; }


当我们的activity比较复杂,而且用户点击画面响应事件时,这个闪动的文字,并不会影响事件处理。除非特地给他加了事件监听。


手机是用应用宝截图的,实际效果快些,感觉好些。


大家可以比较一下这两个方法的区别:


this.addContentView(aliveText, p);

setContentView(R.layout.activity2);