我想創建的linear layout
一個子類,它的背景顏色必須改變黑色或White.I寫了這個代碼:更改視圖的背景顏色?
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();
}
}
}
}
然後,我將其設置爲我的活動內容查看:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyLayout(this));
}
在模擬器中運行應用程序後,run
方法MyLayout
執行沒有任何異常,但背景顏色總是黑色。我做錯了什麼?在您試圖postInvalidate
當您更改顏色?請張貼代碼 –
你在'System.out.println(「Color >>」+ color)中獲得什麼;'logcat中的行? –
@CsehTamás我試圖在'run'方法中改變顏色。 –