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

Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 19 авг 2018, 04:49

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
СообщениеДобавлено: 29 сен 2013, 23:00 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1400
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.

В этом уроке:


- используем объект Camera для получения изображения с камеры
- подгоняем изображение под размеры экрана 
- учитываем поворот устройства




Click here to read this article!

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Последний раз редактировалось damager82 28 май 2017, 21:49, всего редактировалось 7 раз(а).

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 03 окт 2013, 16:11 
Аватар пользователя

Зарегистрирован: 03 окт 2013, 15:38
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Спасибо за наглядный урок!

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

Насколько я понял, гугл жестко ограничили доступ к системной камере и без активного окна превью она не работает.
На просторах интернета нашел несколько решений скрытия этого окна:
1) делать превью размером 1*1 пиксель.
2) использовать Surface-пустышку:
Код: [ Загрузить ] [ Скрыть ]
  1. SurfaceView view = new SurfaceView(this); 
  2. c.setPreviewDisplay(view.getHolder()); 
  3. c.startPreview(); 

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

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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 11 окт 2013, 22:00 

Зарегистрирован: 11 окт 2013, 20:22
Сообщений: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Как же всё понятно! Парни, я вас люблю..за ваш талант, всё так доступно объяснять :)
Этого урока мне как раз и не хватало


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 окт 2013, 11:35 

Зарегистрирован: 16 окт 2013, 11:32
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Что-то запускаю этот пример на телефоне..и не работает (


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 27 окт 2013, 00:23 

Зарегистрирован: 27 окт 2013, 00:20
Сообщений: 1
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Здравствуйте. Подскажите пожалуйста, каким образом полученное изображение выводимое на экран в реальном времени переводить в bitmap, чтобы далее работать с ним как с массивом точек, то есть чтобы не сохранялось изображение и потом его обработка шла, а прям во время вывода на экран изображения. Заранее спасибо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 25 июн 2014, 23:36 

Зарегистрирован: 01 ноя 2013, 15:45
Сообщений: 14
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Desire S никак не отреагировал на поворот 270 градусов. Может, это связано с настройками системы?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 23 дек 2014, 12:01 

Зарегистрирован: 23 дек 2014, 11:57
Сообщений: 6
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
А как сделать видеопоток (например MJPEG) и гнать его по Wi-Fi ?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 13 авг 2015, 00:53 

Зарегистрирован: 13 авг 2015, 00:51
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
//Выставил аналогичный коммент к видео урока на Ютуб

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

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.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 сен 2015, 17:44 

Зарегистрирован: 10 сен 2015, 17:36
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Может кому пригодится :)

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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 26 ноя 2015, 09:52 

Зарегистрирован: 24 мар 2013, 22:31
Сообщений: 48
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
А как бы получить аналогичное для нового апи 21+ ???


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 25 май 2016, 15:04 

Зарегистрирован: 25 май 2016, 14:56
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ребят возникла проблема. С помощью данного урока камера на превью показывает очень близко снимок в отличие того что получается на картинки при сохранение. Как данную проблему разрешить. Что бы на превью показывало то что получится на на снимке?
За ранее благодарен, очень нужна Ваша помощь.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 фев 2018, 22:15 

Зарегистрирован: 06 окт 2013, 11:49
Сообщений: 41
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
import android.hardware.Camera; в более свежих API не рекомендован. что использовать?


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB