12. Власна камера на Android

1. Створіть новий проект. Удаліть всі елементи на активному екрані.

2. У папці drawable створіть файл background.

1
2
3
4
5
6
7
8
9
10
11
<shape xmlns:android="<a href="http://schemas.android.com/apk/res/android"<br />
">http://schemas.android.com/apk/res/android"<br />
</a>    android:dither="true" >
 
    <gradient
        android:angle="90"
        android:centerColor="#00000000"
        android:endColor="#99ffffff"
        android:startColor="#99ffffff" />
 
</shape>

3. Створіть на екрані 2 об'єкти:

Button:        id - buttonCapture;

                  OnClick - OnClick.

ImageView: id - picture;

                  background: drawable/background.

4. Імпортуйте всі необхідні бібліотеки:

1
2
3
4
5
6
7
8
9
10
11
12
        import android.app.Activity;
        import android.content.ActivityNotFoundException; // бібліотека виключень
        import android.content.Intent; // бібліотека намірів
        import android.graphics.Bitmap; // бібліотека зображень
 
        import android.net.Uri; // бібліотека посилань даних 
        import android.os.Bundle;
        import android.provider.MediaStore; // бібліотека сховища медіа
 
        import android.view.View;
        import android.widget.ImageView;
        import android.widget.Toast;

5. Ініціалізуйте змінні:

1
2
    final int CAMERA_CAPTURE = 1; // змінна камери
    private Uri picUri; // для даних зображення

6. Опишіть клік кнопки:

1
2
3
4
5
6
7
8
9
10
11
12
13
    public void onClick(View v) {
        try {
            // Намір для іцініалізації камери
            Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(captureIntent, CAMERA_CAPTURE);
        } catch (ActivityNotFoundException e) { // обробка виключень
            // повідомлення про помилку
            String errorMessage = "Ваш прилад не підтримує фотографування";
            Toast toast = Toast
                    .makeText(this, errorMessage, Toast.LENGTH_SHORT);
            toast.show();
        }
    }

7. Опишіть метод OnActivityResult:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            // повернення після закриття камери
            if (requestCode == CAMERA_CAPTURE) {
                // отримаємо Uri знімка
                picUri = data.getData();
                Bundle extras = data.getExtras();
                // стискання зображення
                Bitmap thePic = extras.getParcelable("data");
                // запис його в ImageView
                ImageView picView = (ImageView)findViewById(R.id.picture);
                picView.setImageBitmap(thePic);
            }
        }
    }

8. Камера готова. Результати:

Контрольні питання:

1. Що таке наміри?

2. Що містить файл background.xml?

3. Опишіть метод виведення повідомлень з допомогою Toast.