如何闪烁LinearLayout?

时间:2016-03-14 16:50:02

标签: android android-linearlayout

我在LinearLayout中有按钮栏。

我想通过LinearLayout警告用户闪烁一些时间。(就像眨眼一样)

我该怎么做?

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

你可以通过使用一个任何你想要的睡眠线程并在其中更改linearLayout的背景颜色来实现它

答案 1 :(得分:0)

LinearLayoutView。这意味着您可以使用动画来更新该视图的背景。

以下是一个示例:Animate change of view background color on Android

答案 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);
                }
            }
        }
    });
}