Проблема с Android — рекламой поверх видеообзора

#android #android-layout #android-studio

#Android #android-макет #android-studio

Вопрос:

Я обновляю старый проект с eclipse на Android Studio. В процессе я также обновил Admob. У меня есть просмотр видео, реклама и линейный макет над ним, который переключается при нажатии на просмотр видео. Раньше это нормально работало в предыдущей версии. Однако в новой версии приложения наблюдается странное поведение.

Я вижу объявление в 1 пиксель внизу, и оно появляется только после того, как я коснулся экрана, при втором касании отображается содержимое линейного макета. Раньше реклама сразу отображалась сверху…

Кто-нибудь, пожалуйста, может помочь мне понять, что я делаю не так? Спасибо

 <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context="com.me.app.Main">

<VideoView
    android:id="@ id/video1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

<LinearLayout
    android:id="@ id/ControlLayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top|center_horizontal"
    android:background="#000000"
    android:padding="10dp"
    android:visibility="invisible">

    <CheckBox
        android:id="@ id/item1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onEvent1"
        android:text="item1" />

    <CheckBox
        android:id="@ id/item2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:onClick="onEvent2"
        android:text="item2" />
</LinearLayout>

<com.google.android.gms.ads.AdView
    android:id="@ id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|center_horizontal"
    android:minHeight="50dp"
    ads:adSize="BANNER"
    />
  

Соответствующий код в классе:

 menuView = (LinearLayout) findViewById(R.id.ControlLayout);

    videoView = (VideoView) findViewById(R.id.video1);
    videoView.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if (menuView.getVisibility() == View.GONE) {
                menuView.setVisibility(View.VISIBLE);
            } else {
                menuView.setVisibility(View.GONE);
            }
            return false;
        }
    });
  

Обновить:
Итак, получается, что я все еще не могу получить рекламу поверх видео, выровненного по нижнему центру. Пробовал всевозможные вещи. Я даже удалил всю остальную функциональность, оставив только VideoView и AdView. По-прежнему не отображается. Есть идеи? Еще раз спасибо.

Комментарии:

1. не получил вашу проблему

Ответ №1:

Давайте посмотрим на ваш XML-код. Сначала вы добавили родительский элемент для заполнения видеообзора в свой xml, на самом деле это означает, что вся ваша область будет покрыта этим представлением, и это зависит от вашего разрешения видео. Возможно, соотношение сторон видео будет высоким, и просмотр рекламы в толпе будет скрыт в вашем макете.

Решение: укажите содержимое для просмотра видео или определенный размер.

 <VideoView
    android:id="@ id/video1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  

Комментарии:

1. Спасибо за помощь, но работает не совсем так, как должно. Видео теперь маленькое и в верхнем левом углу, но реклама отображается нормально. Видео должно быть полноэкранным, а реклама — сверху…

2. Не уверен, что вы имеете в виду, обернуть все это SurfaceView?