按钮单击更改背景图像

时间:2014-05-13 16:54:00

标签: java android eclipse button

我使用eclipse编写我的Android应用程序代码,我想知道如何在单击按钮时更改MainActivity的背景图像。我有img1.png和img2.png。目前使用以下xml代码在img1.png上设置背景:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/img1"
    tools:context=".MainActivity" >
<Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="46dp"
        android:layout_marginTop="55dp"
        android:background="@android:color/transparent"
        android:text="" />

</RelativeLayout>

我只是不确定用于更改btn1点击背景图片的java代码。

3 个答案:

答案 0 :(得分:5)

此代码可用于以编程方式设置背景图像

RelativeLayout layout =(RelativeLayout)findViewById(R.id.relativelayout);
layout.setBackgroundResource(R.drawable.img1);

答案 1 :(得分:0)

这可能是一个解决方案。

在您的布局中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/lyt_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/img1"
tools:context=".MainActivity" >

在您的活动中

RelativeLayout layout;
public void onCreate(Bundle savedInstanceState){
super.onCreate(Bundle savedInstanceState);
setContentView(your_xml.xml);
layout = (RelativeLayout) findById(R.id.lyt_main);
button = (Button) findById(R.id.lyt_main);
button.setOnClickListener(new OnClickListener{
      public void onClick(View v) {
               layout.setBackgroundDrawable(your_image));
      }
});
}

答案 2 :(得分:0)

将Android ID添加到您的布局:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/img1"
        android:id="@+id/rlayout"
        tools:context=".MainActivity" >
...
</RelativeLayout>

现在在您的MainActivity.java中:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btn = (Button) findViewById(R.id.btn1);

        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                RelativeLayout rlayot = (RelativeLayout) findViewById(R.id.rlayout);
                rlayot.setBackgroundResource(R.drawable.img2);
            }
        });
    }