Страница 1 из 1

Урок 132. Камера. Вывод изображения на экран. Размер preview. Обработка поворота устройства

Добавлено: 29 сен 2013, 23:00
damager82
В этом уроке:
- используем объект Camera для получения изображения с камеры
- подгоняем изображение под размеры экрана 
- учитываем поворот устройства


Click here to read this article!

Re: Урок 132. Камера. Вывод изображения на экран. Обработка

Добавлено: 03 окт 2013, 16:11
Fromitt
Спасибо за наглядный урок!

Есть ли возможность средствами SDK реализовать фото-съемку в фоновом режиме при свернутом приложении?
Вот уже который день мучаюсь этим вопросом.

Насколько я понял, гугл жестко ограничили доступ к системной камере и без активного окна превью она не работает.
На просторах интернета нашел несколько решений скрытия этого окна:
1) делать превью размером 1*1 пиксель.
2) использовать Surface-пустышку:

Код: Выделить всё

SurfaceView view = new SurfaceView(this);
c.setPreviewDisplay(view.getHolder());
c.startPreview();
У меня на Nexus 4 не заработало.
3) Использование TextureView в API level >= 14 с методом .setVisibility(INVISIBLE);

Но все равно, при уходе activity в background, Surface закрывается и камера отказывается снимать.

Re: Урок 132. Камера. Вывод изображения на экран. Обработка

Добавлено: 11 окт 2013, 22:00
Eva
Как же всё понятно! Парни, я вас люблю..за ваш талант, всё так доступно объяснять :)
Этого урока мне как раз и не хватало

Re: Урок 132. Камера. Вывод изображения на экран. Обработка

Добавлено: 16 окт 2013, 11:35
Nika
Что-то запускаю этот пример на телефоне..и не работает (

Re: Урок 132. Камера. Вывод изображения на экран. Обработка

Добавлено: 27 окт 2013, 00:23
GreatDrek
Здравствуйте. Подскажите пожалуйста, каким образом полученное изображение выводимое на экран в реальном времени переводить в bitmap, чтобы далее работать с ним как с массивом точек, то есть чтобы не сохранялось изображение и потом его обработка шла, а прям во время вывода на экран изображения. Заранее спасибо.

Re: Урок 132. Камера. Вывод изображения на экран

Добавлено: 25 июн 2014, 23:36
denis_po3
Desire S никак не отреагировал на поворот 270 градусов. Может, это связано с настройками системы?

Re: Урок 132. Камера. Вывод изображения на экран. Размер pre

Добавлено: 23 дек 2014, 12:01
Neptyn
А как сделать видеопоток (например MJPEG) и гнать его по Wi-Fi ?

Re: Урок 132. Камера. Вывод изображения на экран. Размер pre

Добавлено: 13 авг 2015, 00:53
AlexKain
//Выставил аналогичный коммент к видео урока на Ютуб

Проявился интересный нюанс. Если писать как в уроке

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
.....
.....
.....
}

то вываливается вот такая вот ошибка

08-13 00:37:13.345 17190-17190/com.alexk.p1321_camerascreen E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.alexk.p1321_camerascreen, PID: 17190
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alexk.p1321_camerascreen/com.alexk.p1321_camerascreen.MainActivity}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2345)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405)
at android.app.ActivityThread.access$800(ActivityThread.java:149)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5333)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:305)
at android.app.Activity.requestWindowFeature(Activity.java:3596)
at com.alexk.p1321_camerascreen.MainActivity.onCreate(MainActivity.java:31)
at android.app.Activity.performCreate(Activity.java:5933)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405)
at android.app.ActivityThread.access$800(ActivityThread.java:149)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5333)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
08-13 00:37:18.143 17190-17190/com.alexk.p1321_camerascreen I/Process﹕ Sending signal. PID: 17190 SIG: 9

//==========================================================

Если написать вот так:

protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

super.onCreate(savedInstanceState);
...
...
...
}
т.е. строку super.onCreate(savedInstanceState); поставить после получения окна, то все нормально. Проект отлаживался на ОС 5.0.2 Lollipop, среда Android Studio.

Re: Урок 132. Камера. Вывод изображения на экран. Размер pre

Добавлено: 10 сен 2015, 17:44
Dim4ikhot
Может кому пригодится :)

Заметил, что если и в методе "surfaceCreated", и в "surfaceChanged" оставить код, как показано в уроке - на Android API >= 15 Camera вылетает с ошибкой "Camera server died; ICamera died; Error 100". Так вот метод surfaceCreated лучше оставить пустым, а surfaceChanged пускай остается, как в уроке. И все отлично работает)

Re: Урок 132. Камера. Вывод изображения на экран. Размер pre

Добавлено: 26 ноя 2015, 09:52
assan
А как бы получить аналогичное для нового апи 21+ ???

Re: Урок 132. Камера. Вывод изображения на экран. Размер pre

Добавлено: 25 май 2016, 15:04
span4ez
Ребят возникла проблема. С помощью данного урока камера на превью показывает очень близко снимок в отличие того что получается на картинки при сохранение. Как данную проблему разрешить. Что бы на превью показывало то что получится на на снимке?
За ранее благодарен, очень нужна Ваша помощь.

Re: Урок 132. Камера. Вывод изображения на экран. Размер pre

Добавлено: 14 фев 2018, 22:15
_ILYA_
import android.hardware.Camera; в более свежих API не рекомендован. что использовать?

Re: Урок 132. Камера. Вывод изображения на экран. Размер preview.

Добавлено: 30 сен 2019, 11:41
shamka
Всем доброго дня.
Подскажите, как сделать preview определенного размера. Но чтобы в нем отображалось не всё изображение с камеры, а лишь его часть.
Подробности на картинке. Сюда загрузить не получилось, ссылка на яндекс диск https://yadi.sk/i/BRGK-58wsuj7BA

То есть, хочу показывать на экране только часть от всего изображения с камеры. И соответственно, чтобы не портились пропорции