在Android中设置线性布局背景动画以使其闪烁
这个问题很简单,但我无法找到一个好的解决办法。我在活动中有一个线性布局。根据用户的需要,我需要使布局的背景闪烁3次。这意味着它会将背景颜色从透明更改为红色,并向后更改3次。让我举个例子:在Android中设置线性布局背景动画以使其闪烁,android,animation,android-linearlayout,Android,Animation,Android Linearlayout,这个问题很简单,但我无法找到一个好的解决办法。我在活动中有一个线性布局。根据用户的需要,我需要使布局的背景闪烁3次。这意味着它会将背景颜色从透明更改为红色,并向后更改3次。让我举个例子: 用户收到一个问题和两个带答案的按钮 用户按错了答案。包含该按钮的布局将更改其背景(透明-红色、透明-红色、透明-红色-透明透明)三次 我如何在安卓系统中实现这一点?谢谢。使用视图将背景颜色更改为红色/透明。setBackgroundColor(int-color) 使用调度(Runnable命令,long de
使用
调度(Runnable命令,long delay,TimeUnit)
方法,您可以一次调度所有颜色更改,并在以后以正确的顺序执行这些更改。您可以将处理程序与postdayed方法一起使用。看起来是这样的:
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);
Handler h=new Handler();
整数计数=0;
Runnable r=新的Runnable()
{
公开募捐
{
如果(计数<6){
如果(计数%2==0){
计数++;
布局。立根台(红色);
h、 延迟后(r,500);
}否则{
计数++;
布局。立根台(透明);
h、 延迟后(r,500);
}
}
}
};
h、 员额(r);
@vidstige:我试过你的建议,但背景的改变并不流畅,有时有效有时只有一半无效
@蒂姆:你的解决方案看起来很好,但在让它工作时我遇到了一些问题,因为我不太擅长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);
}
Handler blinkHandler=new Handler(){
@凌驾
公共无效handleMessage(消息消息消息){
开关(msg.what){
案例0:
lay1.收穗基色(颜色:红色);
打破
案例1:
lay1.setBackgroundColor(颜色:透明);
打破
}
超级handleMessage(msg);
}
};
(int i=0;i < p>使颜色闪烁,我记得在大学时代我们在C++图形库中设置了一个特定的比特。我也试图眨眨眼背景,但是我不想为此而献出一个线程。
如果没有其他颜色,我会尝试在背景中放置一个带有交替颜色的.gif图像