我将如何更改布局的背景

时间:2012-02-20 07:38:39

标签: android android-layout

我正在学习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按钮点击

3 个答案:

答案 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)

你可以试试     view.setBackgroundResource(INT) http://developer.android.com/reference/android/view/View.html#setBackgroundResource(int

我自己没用过,所以我不知道它是否有效