以编程方式更改布局的布局颜色

时间:2011-02-23 17:47:26

标签: android android-layout

我试图以编程方式更改布局颜色但是相对布局(尝试线性布局但未更改),但无法更改。

同时尝试调试应用程序没有帮助,没有与我的TAG相关的消息。

布局最初打好后,应用程序停了下来。

package com.test.intentdemo;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
//import android.os.SystemClock;
import android.widget.RelativeLayout;
import android.util.*;
import java.lang.Thread;

public class intentDemo extends Activity {
    /** Called when the activity is first created. */
    RelativeLayout lLayout;
    public static final String TAG="MyActivity";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        lLayout = (RelativeLayout) findViewById(R.layout.main);
        if (Log.isLoggable(TAG,0))
        {
            Log.e(TAG,"ERROR BEFORE");
            Log.i(TAG,"INFO BEFORE");
            Log.d(TAG,"DEBUG BEFORE");

            lLayout.setBackgroundColor(Color.parseColor("#000000"));
            //SystemClock.sleep(2000);
            try
            {
                Thread.currentThread();
                Thread.sleep(2000);
            }
            catch (Exception e)
            {
                //e.message();
            }

            Log.e(TAG,"ERROR AFTER");
            Log.i(TAG,"INFO AFTER");
            Log.d(TAG,"DEBUG AFTER");
        }
    }
}

3 个答案:

答案 0 :(得分:21)

lLayout = (RelativeLayout) findViewById(R.layout.main);

这是错误的。 findViewById要求ID为View。因此,请为RelativeLayout提供ID,例如:

<RelativeLayout
    android:id="@+id/the_id"

然后:

lLayout = (RelativeLayout) findViewById(R.id.the_id);

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.RelativeLayout;

public class intentDemo extends Activity {
    public static final String TAG="MyActivity";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        RelativeLayout lLayout = (RelativeLayout) findViewById(R.layout.the_id);
        lLayout.setBackgroundColor(Color.parseColor("#000000"));
    }
}

答案 1 :(得分:15)

RelativeLayout lLayout = (RelativeLayout) findViewById(R.layout.the_id);       
lLayout.setBackgroundColor(getResources().getColor(R.color.green_color));

答案 2 :(得分:0)

如果您要使用颜色代码-可以

your_layout_name.setBackgroundColor(Color.parseColor("Color Name"));

示例:

linearLayoutInquiryYear.setBackgroundColor(Color.parseColor("#e3e3e3"));