Добавить предварительный просмотр камеры в качестве слоя для Mapview в Android

В настоящее время я работаю над приложением, которое содержит Map. в этом я хотел бы добавить предварительный просмотр камеры в качестве фона или слоя Mapview. это означает, что все маркеры места показывают только один предварительный просмотр моей камеры. Вот так. На самом деле концепция заключается в том, что когда я открываю свою камеру, на ней отображается ближайший маркер места. поэтому, когда я нажимаю на этот маркер, отображается всплывающее окно, содержащее сведения о месте. как показано на изображении. Как я могу реализовать это, пожалуйста. Пожалуйста, дайте мне любую идею. Я пробовал с предварительным просмотром камеры на заднем плане и просмотром карты на переднем плане и setAlpha (0); и удалить все слои в представлении карты и так далее. ничего тренировки для меня. Пожалуйста, помогите мне найти решение. Заранее спасибо.

Обновлять:

Вот как я добавил предварительный просмотр камеры:

 FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
    cameraSurfaceView = new CameraSurfaceView(this);
    preview.addView(cameraSurfaceView);

и вот как я добавил свой MapView:

<?xml version="1.0" encoding="utf-8"?>

<com.nutiteq.MapView
    android:id="@+id/mapView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/transparent_background" />

<FrameLayout
    android:id="@+id/camera_preview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />
        </RelativeLayout>


   mapView = (MapView) findViewById(R.id.mapView);

I have tried to mapView.setAlpha(0f); but this hide mapview together with marker. nothing could see .

я пытался установить

Canvas can =  new Canvas();
can.drawColor(0x7FFFFFFF);
mapView.draw(can);

но этот тоже не работает.

есть какой-то метод под названием addLayer();, но я не знаю, как преобразовать предварительный просмотр камеры в слой.


person Rathakrishnan    schedule 24.02.2014    source источник
comment
можете ли вы предоставить фрагмент кода   -  person Nikunj Patel    schedule 24.02.2014
comment
Проводите исследования и разработки в этом play.google.com/store/apps/ подробности?id=org.mixare   -  person Auto-Droid ツ    schedule 24.02.2014
comment
Это приложение дополненной реальности   -  person Auto-Droid ツ    schedule 24.02.2014
comment
Ayto-Droid@ Да присматриваюсь. надеюсь, что это поможет мне, как только я это сделаю, я дам вам знать. Большое спасибо, приятель.. Ты молодец!!!   -  person Rathakrishnan    schedule 24.02.2014
comment
Когда я запускаю этот пример приложения, я получаю сообщение об ошибке, называемое VM Aborting. Сигнал Fatel 11 (SIGSEGV) по адресу 0xdeaddood (код = 1), поток 7855 (org.mixare).. знаете ли вы, почему это так?   -  person Rathakrishnan    schedule 24.02.2014


Ответы (3)


Я боюсь, что использование Nutiteq MapView поверх других представлений невозможно. MapView основан на классе GLSurfaceView, и его порядок по сравнению с другими представлениями ограничен — это может быть только самое нижнее представление. Это GLSurfaceView ограничение в Android.

person MarkT    schedule 25.02.2014
comment
Привет, Марк, ты прав, Nutiteq MapView ведет себя не так, как Android MapView, и это было бы проблемой, т.е. раздувать View, чьим родителем является Nutiteq MapView, так что методу inflate нужен родительский параметр ViewGroup, а Nutiteq Mapview не наследуется от ViewGroup но ``Android.View, so what I think, RathaKrishna wants is just a capture of a View` как drawable, и это не зависит от Nutiteq, это просто android.view зависит, а не ViewGroup зависит. - person Gödel77; 11.07.2014

Извините, я был совершенно неправ в своей концепции. Теперь все идет хорошо после изучения концепций дополненной реальности. сейчас я использую SDK BeyondAR Agumented Reality отсюда введите здесь описание ссылки .

person Rathakrishnan    schedule 26.02.2014

Я не уверен, правильно ли я понял, вы хотите drawable из camera preview в качестве фона, не так ли?

Если это то, что вы хотите, вы можете захватить или сделать снимок экрана вашего camera preview представления следующим образом.

# Build the Drawing Cache
view.buildDrawingCache();

# Create Bitmap
Bitmap cache = view.getDrawingCache();

# Save Bitmap
saveBitmap(cache);
view.destroyDrawingCache(); 

Дальше вы можете работать с этим скриншотом как хотите.

Я надеюсь, это может помочь вам.

С уважением

p.s. Я нашел эту информацию здесь, чтобы получить представление о своих представлениях, и с тех пор я часто использую Это.

person Gödel77    schedule 11.07.2014