2014-09-09 12 views
-1

Поэтому я хочу, чтобы моя активность переключалась между двумя выделенными фонами при нажатии простой кнопки. Вот мой XML:Изменение фона операции при событии click

<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" /> 

Теперь я хочу, чтобы Боттон для переключения background1 с background2 (как PNG в разрешении/вытяжке). Я читал о setBackground, setBackgroundDrawable и setBackgroundResource, который я должен использовать и как?

ответ

0

.setBackgroundDrawable (Drawable) является устаревшим, используйте setBackground (вытяжке)

Используйте это для API 17>:

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

и API 16 < вы используете:

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

Пожалуйста не обижайтесь, если я так говорю, но форумы Интернета не могут заменить изучение основ программирования/использования API.

+0

Я не обиделся! Вы правы ... Я новичок в Android, и я знаю, что просить о помощи для всего не так. Я просто не мог заставить его работать. – GLodi

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); 
     } 
    } 
} 
Смежные вопросы