Створюємо додаток ліхтарик на android

Сьогодні ми візьмемося за цікавий і корисний урок, а саме - навчимося створювати додаток "Ліхтарик" для Android пристроїв. Додаток буде гранично простою: головне вікно програми з кнопкою включити / вимкнути ліхтарик.

З приводу зовнішнього вигляду додатка, то використовувана графіка буде не надзвичайно складною, а всього лише фонове зображення і пару зображень для кнопки у включеному і вимкненому стані. Можете підготувати ці зображення самі за власним бажанням, якщо хочете внести в додаток свою власну лепту, так би мовити. Але якщо вам не хочеться цього робити (мені теж), то скористаємося вже готовими красивими зображеннями. Я їх сам різав, тому можливо (так і буде) картинка включеною і вимкненою кнопки трохи не співпадуть по своєму місцю розташування з неоднакових меж кордонів зображень. Якщо ви хочете спробувати зробити краще, ось вам оригінальне зображення для вирізання:

Створюємо додаток ліхтарик на android

В архіві з зображеннями, ті що позначені цифрою 1 - це hdpi, 2 mdpi, 3 - ldpi.

Тепер можна переходити до створення нового проекту, виберемо Blank Activity. Для того, щоб наш ліхтарик заробив, потрібно в файлі маніфесту отримати дозволу на використання спалаху камери. Там немає такого дозволу безпосередньо, так як спалах входить в функціонал камери, тому потрібно отримати дозвіл на роботу з камерою і її можливостями. Відкриваємо файл AndroidManifest.xml і додаємо туди парочку дозволів на камеру:

Тепер потрібно додати зображення кнопок в папку res / drawable. а точніше зображення hdpi, mdpi і ldpi у відповідні папки drawable-hdpi. drawable-mdpi. drawable-ldpi. Тільки приберіть ті циферки в іменах зображень (1,2,3) і простежте, щоб в різних папках зображення включеною і вимкненою кнопки мали однакові назви. Фон нашого застосування буде білого кольору і, будемо сподіватися, красиво зіллється з зображеннями кнопок.

Відкриваємо файл activity_main.xml і додамо туди кнопочку ImageView, яка і буде в підсумку включати і вимикати ліхтарик:

Тепер відкриємо MainActivity.java і оголосимо необхідні змінні:

Програму потрібно обладнати можливістю перевіряти, чи підтримується робота ліхтарика на цьому пристрої, чи присутній там спалах взагалі. Якщо її немає, то буде показуватися відповідне повідомлення і додаток буде закриватися. Для того, щоб реалізувати це, тут же в MainActivity.java додамо наступний код, який в разі відсутності на пристрої спалаху буде показувати повідомлення у вигляді Alert Dialog і закривати додаток:

Якщо зараз запустити додаток на пристрої без спалаху, то ви побачите Alert Dialog з помилкою.

Включення ліхтарика відбувається за допомогою установки режиму роботи камери FLASH_MODE_TORCH. Налаштування процесу включення відбуватиметься за допомогою 2-х функцій getCamera і turnOnFlash. Додамо їх до коду в MainActivity.java.

Для виключення ліхтарика буде використовуватися настройка на режим FLASH_MODE_OFF.

Тепер залишилося тільки додати обробник натискань на кнопку ImageView.

Коли користувач буде включати і вимикати ліхтарик, зображення кнопки повинно змінюватися. Для цього додамо метод перемикання зображень при натисканні на кнопку:

В принципі, вже зараз додаток готове до роботи, але нам хочеться ще зробити так, щоб при перемиканні кнопки програвався звук включення / вимикання ліхтарика. Для цього звук спочатку потрібно завантажити. Можете взяти це. можете знайти що то краще і коротше, я не знайшов. Для роботи зі звуком, створіть в проекті нову папці res / raw і закиньте туди звуковий файл. У код файлу MainActivity.java додаємо наступний код:

Залишається тільки додати кілька важливих методів, які сприятимуть коректній роботі програми:

- onPause () - метод вимикає ліхтарик і вводить додаток у фоновий режим роботи;

- onResume () - метод включає ліхтарик назад;

- onStop () - закриваємо камеру.

Додаємо наступний код:

Усе! Тепер залишається тільки протестувати додаток:

Створюємо додаток ліхтарик на android
Створюємо додаток ліхтарик на android

Дуже непогано, виявилося, що зміщення зображень вкл / викл виявилося ледве помітним, але це на дисплеї 4,5 дюйма.

Ну і перед тестуванням не забудьте, що тестувати додаток роботи ліхтарика є сенс на пристрої, в якому є ліхтарик :). Успіхів!

Схожі статті