Повернутая кнопка (анимация) исчезает после появления баннерной рекламы

У меня есть кнопка в центре моего экрана, спиннер и рекламный баннер внизу. Приложение отлично работает на любом телефоне, который я пробовал, а также отлично работает на планшете galaxy 10.1. Кнопка действует как компас, поэтому я поворачиваю его по мере движения устройства. Я загружаю его на ASUS MeMo Pad 7" 800 x 1280, и он прекрасно работает, пока не появится баннер adMob. В этот момент появляется кнопка, которая накладывается и становится невидимой. Иногда, когда compas вносит коррективы в свое вращение, кнопка мигает назад - вкл / выкл.

Это приложение работает на 5.1, 4.4.2 и проходит предварительные тесты в магазине приложений. Я использовал виртуальное устройство в Studio, используя Nexus 7 (800 x 1280) с 4.4.4, и оно работает. Я не могу определить, есть ли что-то другое в планшете ASUS или ошибка в 4.4.4.

Мой макет выглядит так:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                xmlns:ads="http://schemas.android.com/apk/res-auto"
                android:orientation="vertical"
                android:id="@+id/point"
                tools:context=".MainPlay">


    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:layout_alignParentTop="true"
        android:id="@+id/baseView">
    </ImageView>

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/adUnitId"
        tools:layout_gravity="center_horizontal">
    </com.google.android.gms.ads.AdView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:layout_above="@+id/adView"
        android:layout_alignParentTop="true"
        android:id="@+id/bView"
        android:background="@color/clear"
        android:weightSum="1">

        <TextView
            android:id="@+id/filler"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_weight="0.56">
        </TextView>

        <Button
            android:id="@+id/target"
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:background="@drawable/pointer"
            android:gravity="center"
            android:text="@string/shake"
            android:textColor="#FFFFFF"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/filler1"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_weight="0.35">

        </TextView>

        <Spinner
            android:id="@+id/spinner"
            android:layout_width="250dp"
            android:layout_height="60dp"
            android:background="@color/dark_background"
            android:popupBackground="@color/light_background"
            android:layout_gravity="center_horizontal|center"/>

        <TextView
            android:id="@+id/spinnerText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textStyle="italic"
            tools:textColor="@color/myWhite"
            android:layout_weight="0.14"
         />
    </LinearLayout>


</RelativeLayout>

Я попытался изменить порядок расположения, но все, что действует как ожидалось. Если поместить объявление первым, оно исчезнет под изображением (ожидается). Код ждет некоторое время, прежде чем показывать рекламу (loadAd). Если я не загружаю объявление, кнопка остается в порядке. Если для загрузки следующего объявления требуется полсекунды, на короткое время появляется кнопка.

Кто-нибудь видел такое поведение где-нибудь? Любые предложения о том, как подойти? Это может быть только проблема на этом устройстве, но как это возможно и как я узнаю?

Спасибо.

Редактировать: я нашел другое приложение в магазине Play, которое демонстрирует такое же поведение при вращении кнопки только на ASUS MeMo Pad 7 LTE. Я нашел несколько приложений с вращающимися кнопками, которые работают нормально.

Я пробовал много разных файлов макетов, но независимо от того, на каком уровне я разместил рекламу, кнопка все равно исчезает после ее поворота. Я пробовал анимационные утилиты (RotateAnimation), а также 9 старых библиотек Android. Нет разницы.

PROGRESS (но без исправления)-: кажется, что если я не оживлю кнопку, она останется видимой. Я предполагаю, что что-то в коде анимации взаимодействует с уровнем Z кнопки, когда появляется объявление. Как только я запускаю анимацию (нажатием или вращением устройства), кнопка исчезает. (вздох)

1 ответ

После долгих поисков связанных вопросов я нашел, как остановить мерцающую / исчезающую кнопку, когда Admob обнаруживается с помощью:

adView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

Смотрите этот ответ с 2014 года.

Надеюсь это поможет.

Другие вопросы по тегам