Повернутая кнопка (анимация) исчезает после появления баннерной рекламы
У меня есть кнопка в центре моего экрана, спиннер и рекламный баннер внизу. Приложение отлично работает на любом телефоне, который я пробовал, а также отлично работает на планшете 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 года.
Надеюсь это поможет.