所以我有几个按钮,我希望应用程序屏幕的背景根据我单击的按钮而改变。所以,如果我点击一个写着"蓝色"的按钮,背景就会变成我在res文件夹中创建的指定图像。提前谢谢。
在您的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);
}
使用代码更改图像
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"
现在,您可以将它们组合为