【发布时间】:2013-01-07 16:14:43
【问题描述】:
我想创建一个linear layout的子类,它的背景颜色必须是黑色或白色。我写了这段代码:
public class MyLayout extends LinearLayout implements Runnable {
int color = 0xFFFFFFFF;
public MyLayout(Context context) {
super(context);
Thread t = new Thread(this);
t.start();
}
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
if(color == 0xFF000000){
color = 0xFFFFFFFF;
}else{
color = 0xFF000000;
}
this.setBackgroundColor(color);
postInvalidate();
System.out.println("Color >> " + color);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
然后我将它设置为我的 Activity 的 ContentView:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyLayout(this));
}
在模拟器中运行App后,MyLayout的run方法无异常执行,但是背景颜色总是黑色。我做错了什么?
【问题讨论】:
-
什么时候换颜色?请贴代码
-
你在 logcat 的
System.out.println("Color >> " + color);行得到了什么? -
@CsehTamás 我正在尝试在
run方法中更改颜色。 -
@ρяσѕρєя K logcat 重复:
颜色 >> -16777216
颜色 >> -1
标签: android view background android-linearlayout