Android的;单击按钮更改布局/屏幕的背景

时间:2012-01-07 14:51:39

标签: android layout button

所以我有几个按钮,我希望应用程序屏幕的背景根据我点击的按钮而改变。因此,如果我单击一个写有“蓝色”的按钮,背景将变为我在res文件夹中创建的指定图像。提前谢谢。

2 个答案:

答案 0 :(得分:3)

在您的onCreate()方法中

获取Views这样的内容:

rootLayout = (LinearLayout) findViewById(R.id.rootLayout);
btnBlue = (Button) findViewById(R.id.btnBlue);
btnRed = (Button) findViewById(R.id.btnRed);
btnGreen = (Button) findViewById(R.id.btnGreen);

并在所有按钮上设置onClickListener,如下所示:

btnRed.setOnClickListener(this);
btnGreen.setOnClickListener(this);
btnBlue.setOnClickListener(this);

并覆盖方法onClick(),如下所示:

@Override
public void onClick(View v){
  Drawable background = null;
  switch(v.getId()){
     case R.id.btnBlue :drawable = getResources().getDrawable(R.drawable.imageBlue); break;
     case R.id.btnRed : drawable = getResources().getDrawable(R.drawable.imageRed); break;
     case R.id.btnGreen : drawable = getResources().getDrawable(R.drawable.imageGreen); break;
   }
rootLayout.setBackgroundDrawable(background);
}

答案 1 :(得分:2)

使用代码

更改图像
public void onClick(View v) {
if(v==ButtonName)
ButtonName.setImageResource(R.drawable.ImageName); 
}

或使用XML文件

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true"
   android:drawable="@drawable/login_selected" /> <!-- pressed -->
<item android:state_focused="true"
   android:drawable="@drawable/login_mouse_over" /> <!-- focused -->
<item android:drawable="@drawable/login" /> <!-- default -->

OnClick只需添加此代码

ButtonName.setBackgroundDrawable(getResources().getDrawable(R.drawable.ImageName))

即使你想要我背景画,也就是:

android:background="@drawable/ImageName"

现在,你可以复合它们