我在LinearLayout中有按钮栏。
我想通过LinearLayout警告用户闪烁一些时间。(就像眨眼一样)
我该怎么做?
提前感谢您的帮助。
答案 0 :(得分:0)
你可以通过使用一个任何你想要的睡眠线程并在其中更改linearLayout的背景颜色来实现它
答案 1 :(得分:0)
LinearLayout
是View
。这意味着您可以使用动画来更新该视图的背景。
答案 2 :(得分:0)
只是为了好玩...这是使用handler.postDelayed
的测试样本,闪烁5秒
protected int seconds = 5;
private LinearLayout llTest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flash);
llTest= (LinearLayout ) findViewById(R.id.llTest);
handler.removeCallbacks(runnable);
handler.postDelayed(runnable, 1000);
}
private Runnable runnable = new Runnable() {
public void run() {
long currentMilliseconds = System.currentTimeMillis();
seconds--;
if (seconds > 0) {
llTest.setBackgroundColor( seconds % 2 == 0 ? Color.RED : Color.BLUE );
handler.postAtTime(this, currentMilliseconds);
handler.postDelayed(runnable, 1000);
} else {
handler.removeCallbacks(runnable);
}
}
};
希望它有所帮助!!
答案 3 :(得分:0)
我通过这种方法解决了这个问题:
public void tintBackground(final View rootView, final boolean changeColor) {
G.HANDLER.post(new Runnable() {
@Override
public void run() {
int sdk = android.os.Build.VERSION.SDK_INT;
if (changeColor) {
ColorDrawable[] color = { new ColorDrawable(Color.RED),
new ColorDrawable(getResources().getColor(R.color.theme_color)) };
TransitionDrawable trans = new TransitionDrawable(color);
if (sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
rootView.setBackgroundDrawable(trans);
} else {
rootView.setBackground(trans);
}
trans.startTransition(1000); // do transition over 1 seconds
} else {
if (sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
rootView.setBackgroundDrawable(null);
} else {
rootView.setBackground(null);
}
}
}
});
}