Android имаме камера надолу и печат - работа с камера
Софтуерно приложение Превключване на камерата
Можете да стартирате програмата от прилагането на програмата система "Camera" (в този случай, не е нужно да имат допълнителни права) чрез намерение.
Като цяло, потребителите могат да бъдат различни приложения, които могат да правят снимки. След това ще видите диалогов прозорец с избор на желаното приложение. Всички те имат в състава си явна запис (за цялостното развитие):
В Google, Google има камера. Пусни го.
Когато се обадите getIntent () метод, вместо прилагането нов намерения (), за да се стартира веднага, в противен случай - Заключения от списъка на прозорец за избор на програма. Можете също така трябва да се уверите, че програмата е инсталирана, няма проверка в примерен код.
Ние приемаме снимки и запишете резултатите. Един прост пример
Просто включете камерата не е много интересно. Помислете за един практически пример, когато се изпълнява софтуера приложение "Камера", а полученото изображение запазва в папка. За да започнете, се съсредоточи върху основната задача, и след това да напишете по-сложно приложение.
Използвайте ACTION_IMAGE_CAPTURE статично постоянно от MediaStore обект за създаване на намерението, което след това трябва да се явят на startActivityForResult (). Поставете бутон форма и ImageView. което ще постави полученото изображение. Този код се задейства приложението на камерата по подразбиране. Получава се от образите на камерата може да бъде обработена в onActivityResult () метод:
Този код ще започне дейността за контрол на камерата, което позволява на потребителя да промените настройките на изображението, можете освобождава от задължението да създадете своя собствена молба за тези нужди.
Картината по подразбиране се връща под формата на Bitmap обект. съдържащ картинка. Този обект се намира в данните на параметрите. предадена в метод onActivityResult (). За да получите миниатюра във формата на Bitmap обект. трябва да се обадите getParcelableExtra () метод за намеренията, минавайки го данни низ стойност.
Ако зададете изходящ URI пътя с помощта на параметър MediaStore.EXTRA_OUTPUT в течаща намерение, пълен размер на изображението, заснето от камерата, ще остане на определено място. В този случай, onActivityResult () метод няма да бъде предаден на миниатюрата, и окончателния план ще покаже на нула.
Следният пример показва как да създадете умалени изображения за да се получи пълен или изображение с помощта намерение.
В Android 6.0 Зефир например не функционира поради нови регулации с разрешение. Новият вариант е представен в съответния член.
Разбиране на основите, можете да усложни пример.
Да предположим, че сте създали специална услуга, която проследява и бездомни котки в организацията ви ги донесат подаръци, както и да ги гали. Потребителите, които са изтеглили приложението си, което трябва да направите снимка на котка, а след това информацията за мястото на стрелбата и други настройки, за да можете да стигнете до центъра за лечение. Снимки на котки - това е част от вашата кандидатура. Не е задължително изобретят колелото и работят директно с функциите на фотоапарата. Вече има приложение за система Камера, с който можете бързо да направите снимка и да получите резултата обратно към заявлението.
Първо се малка кухня. Има една група от устройства, които не разполагат с камери, като електронни четци. За потребителите на тези устройства не е напразно изтегляния на приложението си, което ще бъде безполезна за тях, да предпише манифест изискването за камера.
Ние ще се издава отделно функция за стартиране намерение.
Този код се задейства приложението на камерата по подразбиране. Получава се от образите на камерата може да бъде преработен метод onActivityResult ().
Във всеки случай, напиши функция за проверка на възможността за прилагането да се справят с намерението си:
Тази функция ще ни помогне по време на сваляне на приложението, за да се провери наличието на подходящи намерения. Ако заявлението не се намери подходящ, тогава можем да направим един бутон за снимане на недостъпна.
Заявление Система Камерата кодира изображения на намерението за връщане, което се предлага в метод onActivityResult () под формата на малка Bitmap в ключа за данни. Следният код получава изображението и го показва в ImageView.
За прилагане на камерата се съхраняват снимки в пълен размер, от които се нуждаем, за да му каже името на файла, за да спаси и пълната си път.
В Android 2.2 и по-висока (API 8) има специален метод, за да получите пътя по подразбиране за снимките:
За ранни версии на Android, ще трябва да въведете името на директорията, снимка сами по себе си:
PICTURES_DIR имот - това е просто една папка Pictures / - стандартно място за споделени снимки на външен / на обща памет.
Трябва да се грижи за уникалното име на файла, за да се избегнат конфликти:
В нашия пример, името на файла се формира от датата, която ви позволява да не се страхуват да създадете дубликати.
Ако имаме място за съхранение на изображението, тогава нека камера път заявление чрез намерение:
Добави снимката в приложението Галерия
При създаване на картина чрез намерение, което трябва да знам къде ще се намира на изображението, тъй като трябва да посочите къде да го спаси. Можете да отидете в другата посока - да се направи фотографията достъпна за системата с помощта на доставчик на медийни.
Следващият пример демонстрира метода на система за обаждане медии скенер, за да добавите снимка в медиите база данни на доставчика, че ще направи по-видими в приложението Галерия и други приложения.
Дешифрирането за оразмеряване на изображения
Извадете и изрежете
Помислете още един пример, когато се стартира приложението Камера, както и включително изрязване на готовност. Моля, имайте предвид, че по-голямата част от кода остава същата. Точно се отказвам различни примери, с малки промени, така че можете да изберете най-подходящите методи за вашата кандидатура. Препоръчва се също така да се провери работата на камерата на реални устройства, тъй като много производители заместват стандартните методи на изследване на техния фърмуер и шофьори. По-специално, с намерение да рамкиране проблем и в интернет, много от тях се оплакват от липсата на подкрепа за този процес.
Напишете просто оформление на бутоните, за да стартирате камерата и за извеждане на ImageView изрязано изображение.
За повече красота ще направим фона на ImageView със заоблени ъгли и инсулт. За този атрибут андроид: фон, ние сме регистрирани специален стил. Създаване на ВЕИ / изтегляемото папка. и да го подаде background.xml, както следва:
Тази стъпка не е задължителна и може да бъде пропуснато.
Когато натиснете бутона, за да стартирате приложението Камера и очакваните резултати.
След като потребителят е направил рамката, която искате, програмата връща фотоапарата обратно в нашата молба. Резултати преработени в onActivityResult () метод:
След получаване на снимката ние се опитваме да го отрежете. За да направите това, да създаде метод performCrop (). който задейства със специална инвестиционна цел, предназначени за тези цели. Ако се окаже успешна, резултатът се връща в нашата молба, но с различен код PIC_CROP. Сега имаме правилния образ, който може да бъде показана.
Framing, ние посочите желания размер (метод на кода по-долу). Ако зададете твърде голям (повече от 400), то резултатът няма да бъдат върнати. Опитайте се да добавите още два параметъра:
Резултатът от прилагането, когато работи намерението на рамкиране и крайния резултат. Препоръчително е да се обучават на котки.
Покажи код (кликнете)