Урок 4. Делаем фонарик

В этом уроке вы научитесь создавать полноэкранное приложение, выводить на экране исчезающие информационные сообщения пользователю и…включать вспышку вашей камеры.

1. Создаем новый проект

Screenshot_26 Screenshot_27 Screenshot_28 Screenshot_29

2. Удалим надпись «Hello World» и разместим (перетаскиванием) на середине экрана кнопку Toggle Button:

Screenshot_30

 

далее ищем свойство onclick и назначаем ему функцию flbt, не забыв затем добавить её в Form1.java:

public void flbt(View view) {
}

Далее добавим функцию:

public void alert(String txt){
 Toast toast = Toast.makeText(getApplicationContext(),txt, Toast.LENGTH_SHORT);
 toast.show();
 }

Которая будет на короткое время показывать пользователю уведомления.

и функцию:

public void flashws(boolean sw){
 if (camera != null) {camera.release();};
 try {
 camera = Camera.open();
 params = camera.getParameters();
 if (sw == true) {
 params.setFlashMode(Parameters.FLASH_MODE_TORCH);
 camera.setParameters(params);
 camera.startPreview();
 alert("Фонарик включен!");
 } else {
 params.setFlashMode(Parameters.FLASH_MODE_OFF);
 camera.setParameters(params);
 camera.stopPreview();
 alert("Фонарик выключен!");
 };
 } catch (RuntimeException e) {
 alert("Ошибка открытия камеры!");
 }
 }

которая управляет включением/выключением светодиода камеры.

Не забудьте добавить необходимые модули:

import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.widget.Toast;

Теперь мы готовы доделать функцию flbt:

public void flbt(View view) {
 sbt=(ToggleButton) findViewById(R.id.toggleButton);
 if (sbt.isChecked()==true){flashws(true);}
 else {flashws(false);};
 }

Изменяем AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.example.andromeda.myflash" >
 <uses-sdk
 android:minSdkVersion="8"
 android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.CAMERA" />
 <uses-feature android:name="android.hardware.camera" />
<application
 android:allowBackup="true"
 android:icon="@drawable/ic_launcher"
 android:label="@string/app_name"
 android:theme="@style/AppTheme" >
 <activity
 android:name=".Form1"
 android:label="@string/app_name"
 android:theme="@style/Theme.AppCompat.Light.NoActionBar">
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
</application>
</manifest>

Для добавления разрешений для работы с камерой и полноэкранного режима активности Form1.

Компилируем, запускаем, радуемся 😉

Начиная с API 21, для работы с камерой google рекомендует использовать для работы с камерой класс camera2, в котором можно включать светодиод камеры без монопольного захвата камеры, однако рабочих примеров в сети не нашел. А самому руки пока не дошли сделать…

 


Комментарии:

Урок 4. Делаем фонарик: 2 комментария

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Жизнь замечательных грибов