Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
DjTurxan
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 49
#1

Сделать фото программно без окна камеры - Программирование Android

05.06.2015, 14:07. Просмотров 1469. Ответов 16
Метки нет (Все метки)

Здравствуйте. Столкнулся с такой проблемой, что нужно при нажатии кнопки сразу сделать снимок без появления окна камеры или хотя бы автоматически нажималась кнопка снимка. Как это можно реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2015, 14:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сделать фото программно без окна камеры (Программирование Android):

Возможно ли без открытия камеры на телефоне сделать фотографию? - Программирование Android
Здравствуйте, делаю приложение что-то типа голосового помощника по частичному управлению телефоном. Возникла надобность по голосовой...

Некорректный размер фото с камеры - Программирование Android
доброго времени всем. возникла у меня проблемка, делаю я фото с камеры но оно получается очень маленького размера в камере стоит параметр...

Как сохранить фото с камеры напрямую во внутреннюю директорию приложения? - Программирование Android
Стартую Intent камеры, добавляю Extra с Uri файла, куда надо сохранить снимок: Intent intent = new...

Не могу программно открыть папку с фото - Программирование Android
Здравствуйте, написал свой файловый менеджер, но при запуске должна открыться папка /sdrard/dcim/camera, выдает ошибку, так же при выборе...

Включение GPS программно без подтверждения пользователем - Программирование Android
В интернете есть темы, но чета они не рабочие:) Или из жопы руки.. Направьте пожалуйста! Как включить GPS программно без подтверждения...

Можно ли сделать программно root на Android? - Программирование Android
можно ли сделать программно root на android?? И как если можно??

16
Welemir1
Мечтатель
325 / 302 / 103
Регистрация: 30.03.2015
Сообщений: 1,294
05.06.2015, 15:38 #2
снимок экрана? снимок веб-камерой? кнопка на форме или на веб-камере? а вы можете реализовать С появлением "окна камеры"?
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
05.06.2015, 18:15 #3
ну если не через интенты делать
примеров в сети вагон
нет, не могу дать готовый код, сам найдешь

Добавлено через 2 часа 7 минут

Не по теме:

упс, это не раздел андроида, тогда отбой

0
DjTurxan
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 49
07.06.2015, 10:09  [ТС] #4
Нужно сделать снимок передней камерой телефона. Где-то прочитал, что андроид не позволяет делать снимки без preview камеры, но что-то не верится в это. Неужели никаких обходов нету?)

Цитата Сообщение от Паблито Посмотреть сообщение
упс, это не раздел андроида, тогда отбой
Как раз об андроиде и идет речь) Прошу помочь, это как бы селфи, которое делается при нажатии на Button
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
07.06.2015, 23:17 #5
DjTurxan, думаю, даже если бы снимок делался после появления preview, то это самое preview можно было бы закрыть каким-нибудь прямоугольником или уменьшить до размеров точки.
Вам следует изучить Camera API. Я как раз в процессе. Почитайте, например, http://startandroid.ru/ru/uroki/vse-...hem-video.html. В Camera API очень много мути, к тому же, для разных устройств могут быть совершенно разные баги. И не во всех устройствах есть передняя камера или вообще какая-либо. Вот впечатляющий список известных багов одной библиотеки (увидите внизу): https://github.com/commonsguy/cwac-camera.
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
08.06.2015, 08:16 #6
без превью не возможно
можно сделать превью размером 1х1 и ее не будет видно
но она все равно должна быть на экране

Добавлено через 3 минуты
не получается совместить превью и glsurface
0
DjTurxan
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 49
09.06.2015, 11:21  [ТС] #7
Окей, пусть даже превью будет на весь экран) Мне главное нужно, чтобы происходила автоматическая съемка. Нажал на кнопку, появился превью - сам сфоткал и закрылся. Это возможно сделать, ребят?)
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
09.06.2015, 13:03 #8
можно, а в чем трудность? можно сделать чтобы фоткал каждые пять сек и сохранял на карту памяти
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
09.06.2015, 19:02 #9
DjTurxan, ещё раз: думаю, preview можно закрыть сверху другими компонентами. Например, нарисовать прямоугольник или использовать FrameLayout с Frame'ами.
По поводу фотографирования - вам нужно код найти?
0
DjTurxan
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 49
10.06.2015, 00:58  [ТС] #10
Цитата Сообщение от CoolMind Посмотреть сообщение
По поводу фотографирования - вам нужно код найти?
Именно!) Весь интернет перелазил, Толком ничего не нашел. Где-то прочитал, что андроид не разрешает такое в целях безопасности и это прочитал уже под конец, и засело в голове)
Где можно, даже если не код, найти информацию про автосъемку, т.е. без вмешательства человека? Например, как сказал Valakin, фоткать через определенный промежуток времени таймером:
Цитата Сообщение от Valakin Посмотреть сообщение
можно, а в чем трудность? можно сделать чтобы фоткал каждые пять сек и сохранял на карту памяти
Буду очень благодарен любой помощи!)
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
10.06.2015, 10:20 #11
Цитата Сообщение от DjTurxan Посмотреть сообщение
Где-то прочитал, что андроид не разрешает такое в целях безопасности
Возможно, но ведь существуют программы, которые препятствуют краже смартфона, они могут и фотку злоумышленника сделать, и в Интернет выложить.

Добавлено через 31 минуту
http://www.vogella.com/tutorials/And...rial_cameraapi
https://github.com/commonsguy/cwac-c...ameraView.java
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
10.06.2015, 10:23 #12
склепал на скорую руку код, убрал все лишнее, все проверки
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        final Camera c = Camera.open();
        Log.i("===", "" + c);
 
        findViewById(R.id.btn1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
                c.takePicture(null, null, mPicture);
 
            }
        });
    }
 
    private Camera.PictureCallback mPicture = new Camera.PictureCallback() {
 
        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
 
            File pictureFile = getOutputMediaFile();
 
            try {
                FileOutputStream fos = new FileOutputStream(pictureFile);
                fos.write(data);
                fos.close();
            } catch (FileNotFoundException e) {
                Log.d("===", "File not found: " + e.getMessage());
            } catch (IOException e) {
                Log.d("===", "Error accessing file: " + e.getMessage());
            }
        }
    };
 
    private static File getOutputMediaFile() {
        File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_PICTURES), "MyCameraApp");
 
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        File mediaFile;
        mediaFile = new File(mediaStorageDir.getPath() + File.separator +
                "IMG_" + timeStamp + ".jpg");
        return mediaFile;
    }
 
}

Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
    <Button android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="START"/>

Кликните здесь для просмотра всего текста
XML
1
2
3
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-feature android:name="android.hardware.camera" />

у меня на эмуляторе делает снимки на ура, на устройстве проверить пока не могу
1
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
22.06.2015, 11:46 #13
Well, recently I've continued camera app again. Thanks for this topic as I remembered that frames cannot be captured without UI (SurfaceView).
I found that there are some changes: starting from API 11 a component SurfaceTexture is available.
See here:
http://stackoverflow.com/questions/5...t-surface-view
http://stackoverflow.com/questions/2...xtureview?lq=1
So I think it would be possible to capture frames without showing them in 1x1 pixel box.

Добавлено через 46 минут
Also you may look at this page: http://stackoverflow.com/questions/2...t-preview?lq=1, it describes how to take a picture with a temporary SurfaceView.

Добавлено через 17 часов 9 минут
O-la-la, it seems a SurfaceView takes too much CPU time for it's maintenance. I measured time for a fullscreen SurfaceView (130 ms per frame) and 1x1 dp (60 ms per frame).
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
22.06.2015, 13:13 #14
SurfaceView чем от превьюшки отличается? (его на экран можно не выводить?)
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
22.06.2015, 13:36 #15
Valakin, SurfaceView выводится на экран обязательно. Правда, можно работать с не-UI потоками. Поэкспериментирую, может, можно как-то его не выводить.
SurfaceTexture, я так понял, можно не выводить на экран.
1
22.06.2015, 13:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2015, 13:36
Привет! Вот еще темы с ответами:

как программно сделать скриншот экрана - Программирование Android
как програмно сделать скриншот экрана?

Открыть сессию Facebook по token без окна авторизации - Программирование Android
Подскажите, каким образом правильно использовать метод openActiveSessionWithAccessToken() в Faсebook API. Прохожу авторизацию, получаю...

Сделать фото с веб-камеры и сохранить на диск - VBA
Добрый день уважаемые форумчане. Пища для размышления: кто-нибудь видел или знает как можно реализовать на VBA, что бы при определенных...

Как программно сделать снимок с фэб камеры и загрузить ее в PictureBox - Visual Basic .NET
Как программно сделать снимок с фэб камеры и загрузить ее в PictureBox?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru