這個問題很簡單,但我無法找到一個好的解決方案。我在我的活動中有一個LinearLayout。根據用戶的操作,我需要使我的Layout的背景閃爍3次。這意味着它將背景顏色從透明改變爲紅色並向後改變3次。我給大家舉一個例子:動畫LinearLayout背景在Android中閃爍
- 用戶收到的問題和2個按鈕的答案
- 用戶按下錯誤的答案。包含該按鈕的佈局會改變其背景(透明 - 紅色,透明 - 紅色,透明 - 紅色 - 透明)三次。
我怎樣才能使這個在Android的?謝謝。
這個問題很簡單,但我無法找到一個好的解決方案。我在我的活動中有一個LinearLayout。根據用戶的操作,我需要使我的Layout的背景閃爍3次。這意味着它將背景顏色從透明改變爲紅色並向後改變3次。我給大家舉一個例子:動畫LinearLayout背景在Android中閃爍
我怎樣才能使這個在Android的?謝謝。
@vidstige:我想你的建議,但背景是改變不流利,有時工作有時只有一半有時事與願違
@Tim:您的解決方案看起來非常好,但是我遇到了一些問題,使得它可以正常工作,而且我並不擅長放棄Java。
,工程解決方案是兩個答案相結合的原則。我不確定它是否是最好的,但在我的情況下效果很好
Handler blinkHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
lay1.setBackgroundColor(Color.RED);
break;
case 1:
lay1.setBackgroundColor(Color.TRANSPARENT);
break;
}
super.handleMessage(msg);
}
};
for (int i=0; i<6; i++)
{
Message msg = new Message();
if(i % 2 == 0){
msg.what = 0;
}
else{
msg.what=1;
}
blinkHandler.sendMessageDelayed(msg, i*300);
}
謝謝大家爲你的時間。
使用ScheduledThreadPoolExecutor安排一個動作,使用View.setBackgroundColor(int color)
將背景顏色更改爲紅色/透明。
使用schedule(Runnable command, long delay, TimeUnit unit)
方法,你可以安排一次所有的顏色變化,他們稍後會以正確的順序執行。
你可以使用一個處理程序與方法postDelayed。這將是這個樣子:
Handler h = new Handler();
int count = 0;
Runnable r=new Runnable()
{
public void run()
{
if(count < 6){
if(count % 2 == 0){
count++;
layout.setBackground(RED);
h.postDelayed(r,500);
}else{
count++;
layout.setBackground(TRANSPARENT);
h.postDelayed(r,500);
}
}
}
};
h.post(r);
爲了使顏色眨眼我記得有我們使用C++圖形庫設置,在大學生活的特定位。我也試圖眨眼背景,但我不想爲此目的奉獻一條線索。
如果沒有備用的一切,我會盡力把.gif圖像與背景顏色交替。