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.