项目中需要添加在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;
/**
* <p>
* </p>
* 下午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);