如何在android sdk中从MainActivity更改activity_main中的背景?

时间:2014-01-20 03:27:18

标签: android background

package mine.app;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void changeBackgroundColor(View view) {
    setContentView(R.layout.color_list);
    }

    public void setBackgroundRed(View view) {
    findViewById(R.layout.activity_main).setBackgroundColor(Color.RED);
    setContentView(R.layout.activity_main);
    }
}

当应用程序运行时,它会创建一个运行changeBackgroundColor的按钮。然后它会显示一个运行setBackgroundRed的按钮,该按钮会使应用程序崩溃。

2 个答案:

答案 0 :(得分:0)

MainActivity中创建一个类似....的方法

public void setActivityBackgroundColor(int color) {
    View view = this.getWindow().getDecorView();
    view.setBackgroundColor(color);
}

然后从OnClickListener调用此函数,无论你想要什么颜色传递颜色。

答案 1 :(得分:0)

将onCreate更改为以下

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getWindow().setBackgroundDrawableResource(R.color.blue);// specify background drawable resource or background color resource here
}