更改点击事件的活动背景

时间:2014-09-09 20:55:28

标签: java android eclipse

所以我希望我的活动在点击一个简单的按钮时在两个可绘制的背景之间切换。 这是我的xml:

<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:gravity="start"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/background1" >

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="58dp"
    android:text="Button" />

现在我希望botton用background2切换background1(res / drawable中的png)。 我读过有关setBackground,setBackgroundDrawable和setBackgroundResource的内容,我应该使用哪一个以及如何使用?

3 个答案:

答案 0 :(得分:0)

不推荐使用

.setBackgroundDrawable(Drawable),使用setBackground(Drawable)

将此用于API 17&gt;:

layout.setBackground(getResources().getDrawable(R.drawable.name_image));

和API 16&lt;你使用:

layout.setBackgroundDrawable(getResources().getDrawable(R.drawable.name_image));

答案 1 :(得分:0)

如果我这样说,请不要被冒犯,但互联网的论坛无法取代学习编程/使用API​​的基础知识。

答案 2 :(得分:0)

你去;

public void switch(boolean isFirst)
{
   int sdk = android.os.Build.VERSION.SDK_INT;
   if(isFirst)
   {

      if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
          getWindow().setBackgroundDrawable(R.drawable.background1);
      }
      else {
          getWindow().setBackground(R.drawable.background1);
      }
   }
   else
   {

      if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
          getWindow().setBackgroundDrawable(R.drawable.background2);
      }
      else {
          getWindow().setBackground(R.drawable.background2);
      }
   }
}