返回信息流这是我自己写的(下面是主要的部分,并不是全部):
//定义颜色数组
private int[] ColorArrray = { Color.BLUE, Color.RED,
Color.WHITE, Color.YELLOW };
//接受Thread中传来的message,改变button的背景色
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
Log.i("Mian.this", "--what-->" + msg.what);
button.setBackgroundColor(ColorArrray[msg.what]);
}
};
//使button每4秒变换一次颜色
button.setOnClickListener(new OnClickListener() {
@ Override
public void onClick(View v) {
// TODO Auto-generated method stub
while(true){
new Thread(new Runnable() {
@ Override
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(4000);//线程暂停4秒,单位毫秒
Message message=new Message();
message.what=(int) (Math.random() *4);
handler.sendMessage(message);//发送消息
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
这样做的话有时候会是主线程负载过重,并且button的颜色没有改变。。。有哪位大神路过帮忙看看,LZ小白一个,望多指教!
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #15228同步于 2014/7/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
[问题]Android开发中使button的颜色在一次点击之后就不断变化,
aName
2014/7/30镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 icyfox 的大作中提到: 】
: while(true){
: 建立Thread()
: }
: ...................
这样???
button.setOnClickListener(new OnClickListener() {
@ Override
public void onClick(View v) {
// TODO Auto-generated method stub
new Thread(new Runnable() {
@ Override
public void run() {
while(true){
// TODO Auto-generated method stub
try {
Thread.sleep(30000);//线程暂停2秒,单位毫秒
Message message=new Message();
message.what=(int) (Math.random() * 3);
handler.sendMessage(message);//发送消息
System.out.println("the message had sended");
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
}
});
嗯大概就这样吧
【 在 aName (昵称) 的大作中提到: 】
: 这样???
: button.setOnClickListener(new OnClickListener() {
: @ Override
: ...................
恩,就这样[ema0]
【 在 aName 的大作中提到: 】
:
: 这样???
: button.setOnClickListener(new OnClickListener() {
: ...................
【 在 icyfox 的大作中提到: 】
: 有问题的话,再详细说下情况
:
用之前那种方法老是会出错,然后我改用了TimerTask ,就可以实现button颜色不断变换了,可现在又有一个问题,如果我要使button颜色不定时变换的话要怎么做(就是每次变换的间隔都不一样,不知道学长听明白没 = =)?
random什么的
【 在 aName (昵称) 的大作中提到: 】
: 用之前那种方法老是会出错,然后我改用了TimerTask ,就可以实现button颜色不断变换了,可现在又有一个问题,如果我要使button颜色不定时变换的话要怎么做(就是每次变换的间隔都不一样,不知道学长听明白没 = =)?