Вторник, 12.12.2017, 09:22
Поиск
Никнэйм
Сертификат на никнейм Olelucoye, зарегистрирован на Тимофеев Константин Михайлович
Зарегистрируй свой никнейм
Обратная связь
olelucoye.tk@yandex.ru
Реклама AdSense
Реклама
Друзья сайта
  • Лига медицинского права
  • Гостиница "Зай"
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » libGDX

    libGDX и AdMob.

    libGDX и AdMob. Монетизируем libGDX-приложение с помощью AdMob рекламы.

    Посмотрим на AndroidLauncher.java. 

    public class AndroidLauncher extends AndroidApplication {
        @Override
        protected void onCreate (Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
            initialize(new MainClass(), config);
        }
    }

    Если заглянут в исходный код AndroidApplication.class, то увидим, что есть несколько методов инициализации, но все они вызывают метод init. Одним из параметров получаемых этим методом является boolean isForView. Вот участок кода, который исполняется при значении этого параметра true.

    private void init (ApplicationListener listener, AndroidApplicationConfiguration config, boolean isForView) {
            ......
            if (!isForView) {
                try {
                    requestWindowFeature(Window.FEATURE_NO_TITLE);
                } catch (Exception ex) {
                    log("AndroidApplication", "Content already displayed, cannot request FEATURE_NO_TITLE", ex);
                }
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
                setContentView(graphics.getView(), createLayoutParams());
            }
           ......
        }

    Здесь мы видим, на экран устанавливается полноэкранный элемент View. Также существует метод initializeForView, с помощью которого мы можем получить этот View.

    public View initializeForView (ApplicationListener listener, AndroidApplicationConfiguration config) {
            init(listener, config, true);
            return graphics.getView();
        }

    Воспользовавшись этой возможностью, мы можем создать свой layout и поместить в него нужные нам View элементы. Возвращаемся к AndroidLauncher.java и изменим код.

    public class AndroidLauncher extends AndroidApplication {
        @Override
        protected void onCreate (Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
            RelativeLayout main_layout = new RelativeLayout(this);
            View gameView = initializeForView(new MainClass(), config);
            main_layout.addView(gameView);
            setContentView(main_layout);
        }
    }

    Если теперь запустить приложение на андроид-устройстве ничего не изменится, но мы получаем возможность добавлять в layout дополнительные View. Добавим в приложение AdMob-баннер.

    public class AndroidLauncher extends AndroidApplication {
        protected AdView banner;
        @Override
        protected void onCreate (Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
            RelativeLayout main_layout = new RelativeLayout(this);
            View gameView = initializeForView(new MainClass(), config);
            AdView banner = new AdView(this);
            banner.setAdUnitId("ca-app-pub-идентификатор_баннера");
            banner.setAdSize(AdSize.SMART_BANNER);
            main_layout.addView(gameView);
            RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
            adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
            adParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
            main_layout.addView(banner, adParams);
            setContentView(main_layout);
            AdRequest adRequest = new AdRequest.Builder().addTestDevice("идентификатор_тестового_устройства").build();
            banner.loadAd(adRequest);
            }
    }

    Создаем AdView баннер, помещаем его в нижнюю часть экрана и добавляем полученную View  в наш layout. В общем, код не отличается от добавления AdMob рекламы в обычное андроид-приложение.

    Напомню - чтобы AdMob-реклама работала, в приложение нужно добавить библиотеку google_play_services.

    А также необходимо внести соответствующие изменения в файл Manifest

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       .......
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/GdxTheme" >
            <meta-data android:name="com.google.android.gms.version"
                   android:value="@integer/google_play_services_version"/>

            <activity
               ...... >
            </activity>
            <activity android:name="com.google.android.gms.ads.AdActivity"
                 android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

        </application>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    </manifest>

    Вот и все - приложение монетизировано.

    libGDX. Создание скриншотов.
    libGDX. Полноэкранный режим. Перехват нажатия кнопок Back и Menu.
    libGDX. Озвучка персонажа.
    libGDX. Анимация персонажа.
    libGDX. Scene2D. Сенсорное управление персонажем.
    libGDX. Scene2D.
    libGDX. Формы столкновений.
    libGDX. Bullet. Динамика твердого тела. Часть 2.
    libGDX. Bullet. Динамика твердого тела.
    libGDX. Обработка столкновений. Библиотека Bullet. Часть 3.
    libGDX. Обработка столкновений. Библиотека Bullet. Часть 2.
    libGDX. Обработка столкновений. Библиотека Bullet.
    libGDX. Интерактивное взаимодействие с 3D объектами.
    libGDX. Отбраковка объектов не попадающих в обзор камеры.
    3D модель  для libGDX. Пишем код.
    3D модель для движка libGDX
    Строим модель с помощью ModelBuilder
    libGDX. Основы 3D программирования.
    Игра Flower. Ловим капли.
    TexturePacker.Создаем атлас текстур.
    Создаем проект на движке libGDX

    Категория: libGDX | Добавил: Olelucoye (18.07.2015)
    Просмотров: 2063
    | Теги: Монетизация приложений, AdMob, libGDX | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Меню сайта
    Категории раздела
    Андроид разработка [23]
    libGDX [24]
    Мои андроид проекты [6]
    Excel [7]
    Железяки [5]
    Скрипты в блокноте [4]
    Разное [1]
    Форма входа
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Яндекс Метрика
    Яндекс.Метрика