Android 如何进行线性布局?

Android 如何进行线性布局?,android,android-linearlayout,Android,Android Linearlayout,我在LinearLayout内有按钮栏 我想通过LinearLayout闪烁几次来警告用户。(比如眨眼) 我该怎么做 提前感谢您的帮助。您可以使用睡眠时间为任意时间的线程并更改其中linearLayout的背景色,您可以使用睡眠时间为任意时间的线程并更改其中linearLayout的背景色一个视图。这意味着您可以使用动画来更新该视图的背景 下面是一个示例:LinearLayout是一个视图。这意味着您可以使用动画来更新该视图的背景 这里有一个例子:只是为了好玩…这里有一个使用处理程序的测试样本。

我在LinearLayout内有按钮栏

我想通过LinearLayout闪烁几次来警告用户。(比如眨眼)

我该怎么做


提前感谢您的帮助。

您可以使用睡眠时间为任意时间的线程并更改其中linearLayout的背景色,您可以使用睡眠时间为任意时间的线程并更改其中linearLayout的背景色一个
视图
。这意味着您可以使用动画来更新该视图的背景


下面是一个示例:

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


这里有一个例子:

只是为了好玩…这里有一个使用
处理程序的测试样本。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);                    
            }
        }
    };

希望能有帮助

只是为了好玩…这是一个使用
处理程序的测试样本。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);                    
            }
        }
    };

希望能有帮助

我用这个方法解决这个问题:

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);
                }
            }
        }
    });
}
公共背景(最终视图rootView,最终布尔值changeColor){
G.HANDLER.post(新的Runnable(){
@凌驾
公开募捐{
int sdk=android.os.Build.VERSION.sdk\u int;
如果(更改颜色){
ColorDrawable[]color={新的ColorDrawable(color.RED),
新的ColorDrawable(getResources().getColor(R.color.theme_color))};
TransitionDrawable trans=新的TransitionDrawable(颜色);
if(sdk
我用这种方法解决:

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);
                }
            }
        }
    });
}
公共背景(最终视图rootView,最终布尔值changeColor){
G.HANDLER.post(新的Runnable(){
@凌驾
公开募捐{
int sdk=android.os.Build.VERSION.sdk\u int;
如果(更改颜色){
ColorDrawable[]color={新的ColorDrawable(color.RED),
新的ColorDrawable(getResources().getColor(R.color.theme_color))};
TransitionDrawable trans=新的TransitionDrawable(颜色);
if(sdk
我不明白为什么需要线程睡眠。它会阻塞整个用户界面。但是,是的,这是一个背景变化…我不明白为什么线程睡眠是必要的。它会阻塞整个用户界面。但是是的,这是一种背景变化。。。