我正在学习android并且很难在android中使用UI和逻辑,因为它推荐xml方式。我正在努力学习它。我需要帮助改变背景
我的布局中有两张图片。一个是HUD将在左边,另一个将是bg 有很多bg,但现在我刚刚放了一个。我需要帮助如何改变这个bg,因为用户会点击一些按钮。
在我的main1.xml中 - 有8个按钮,因为用户将点击相应的按钮,bg必须进入main2.xml
这是main2.xml的代码
<?xml version="1.0" encoding="utf-8"?>
<!-- Horizontal Layout for HUD and Level Screen -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal" >
<!-- Vertical Layout for the HUD which includes Object list,Timer, Pause and Menu Button -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/hud"
android:orientation="vertical" >
</LinearLayout>
<!-- Relative Layout for the Level Screen -->
<RelativeLayout
android:id="@+id/GamePlayScreen"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/bg" >
</RelativeLayout>
</LinearLayout>
这适用于一个bg如何保持相同的布局main2.xml并继续changin bg w.r.t按钮点击
答案 0 :(得分:1)
充气后,请执行以下操作:
myView.setBackgroundDrawable(d);
d是你的绘画。
答案 1 :(得分:1)
创建像这样的xml我为4个按钮添加4个以满足您的需求
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" android:id="@+id/linear">
<Button<
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
活动中上述xml的活动我们可以使用java代码更改背景
package com.capo.searchrestaurant.activities;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
public class MainActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
LinearLayout l;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
l=(LinearLayout)findViewById(R.id.linear);
Button btn1=(Button)findViewById(R.id.button1);
Button btn2=(Button)findViewById(R.id.button2);
Button btn3=(Button)findViewById(R.id.button3);
Button btn4=(Button)findViewById(R.id.button4);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
//.......
}
@Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.button1:
l.setBackgroundDrawable(getResources().getDrawable(R.drawable.ic_launcher));
break;
case R.id.button2:
l.setBackgroundDrawable(getResources().getDrawable(R.drawable.images));
break;
case R.id.button3:
l.setBackgroundDrawable(getResources().getDrawable(R.drawable.ic_launcher));
break;
case R.id.button4:
l.setBackgroundDrawable(getResources().getDrawable(R.drawable.images));
break;
//....for remaining buttons
}
}
}
答案 2 :(得分:0)
我自己没用过,所以我不知道它是否有效