Android;通过单击按钮更改布局/屏幕的背景
所以我有几个按钮,我希望应用程序屏幕的背景根据点击的按钮而改变。所以如果我点击一个写有“蓝色”的按钮,背景会变成我在res文件夹中创建的指定图像。提前致谢。Android;通过单击按钮更改布局/屏幕的背景
要通过使用代码
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"
现在,你可以复合他们
他想改变屏幕的背景,而不是按钮:) – Houcine 2012-01-07 15:03:52
仔细看看我的答案老兄:) – El3ctr0n1c4 2012-01-07 15:05:17
我当我回家时,我会尝试它,谢谢你的回应:) – user565460 2012-01-07 15:06:39
在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);
}
伟大的作品。谢谢。 – user565460 2012-01-07 22:51:49
如果有效,请接受答案:)。听到那个消息很开心 – Houcine 2012-01-08 00:32:09
这是我的答案,这是正确的,不是他大声笑,你接受了翁的回答男人 – Houcine 2012-01-10 15:55:11