Работаем с программной сменой фона Activity
Главная » Работаем с программной сменой фона Activity

Поработаем над одновременно и простым, и красивым приложением, в котором при нажатии на кнопки на экране будет меняться фоновое изображение в Activity. 

Создаем новый проект, названия оставим по умолчанию, выбираем Blank Activity. Для начала давайте заготовим картинки, которые будут устанавливаться фоном нашего приложения при нажатии на кнопки. Можете найти 3 любых картинки формата PNG, можете скачать мои. Берем изображения и помещаем их в папку drawable приложения.

Теперь создадим интерфейс нашему приложению. Это будет просто экран с тремя кнопками. открываем файл activity_main.xml и пишем в нем код:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="horizontal"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:id="@+id/background"
 android:background="@color/switch_thumb_normal_material_light">

 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/b1"
 android:text="Фон 1"
 android:layout_weight="1"
 android:onClick="BG"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/b2"
 android:text="Фон 2"
 android:layout_weight="1"
 android:onClick="BG"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/b3"
 android:text="Фон 3"
 android:layout_weight="1"
 android:onClick="BG"/>
 
</LinearLayout>

Наше приложение приняло вид:

Обратите внимание, что мы задали для LinearLayout значение id, это будет использоваться для настройки фона при нажатии.

Теперь создадим метод обработки нажатия наших кнопок. Как вы заметили, мы задали им нажатие строкой:

android:onClick="BG"

Код будет один для всех кнопок. Чтобы добавить метод обработки нажатия наших кнопок, ставим курсор на слово "BG" в строке, указанной выше (на любой кнопке, ведь код для них будет общий) и жмем Alt+Enter и выбираем первую строку Create 'BG(View)'in 'MainActivity'

Переходим к работе в файле MainActivity.java. Нам нужно объявить использование объекта класса LinearLayout, привязать его к нашему LinearLayout в файле activity_main.xml (вот зачем мы задавали ему id). Также мы напишем код для обработки нажатия клавиш, с помощью команды switch опишем действия всех троих кнопок в одном коде (как мы неоднократно делали). Код файла  MainActivity.java:

import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;

public class MainActivity extends Activity {
 
 //Объявляем объект типа LinearLayout;
 private LinearLayout mBackground;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 //Привязываем его к нашему LinearLayout в activity_main.xml:
 mBackground=(LinearLayout)findViewById(R.id.background);
}
 //Обрабатываем нажатие клавиш, каждое нажатие устанавливает для нашего 
 // LinearLayout из activity_main.xml разную картинку на фон:
 public void BG(View view) {
 switch (view.getId()){
 case R.id.b1:
 mBackground.setBackgroundResource(R.drawable.sun);
 break;
 case R.id.b2:
 mBackground.setBackgroundResource(R.drawable.leaves);
 break;
 case R.id.b3:
 mBackground.setBackgroundResource(R.drawable.water);
 break;
 }
 }
}

Вот и все, наше приложение готово! Запускаем его на эмуляторе либо устройстве и смотрим результат:

Работающее приложение

Категория: Уроки программирования | Просмотров: 1111 | Добавил: Oleg | Теги: нажатие и смена картинки, background, фон, настраиваем фон приложения, Android | Рейтинг: 0.0/0
Всего комментариев: 0
avatar