mirror of
https://github.com/QuasarApp/QtAndroidTools.git
synced 2025-04-26 13:04:32 +00:00
Added AbMob adaptive banner
This commit is contained in:
parent
42488003b9
commit
a1fdf22e23
@ -49,7 +49,8 @@ public:
|
||||
TYPE_LARGE_BANNER,
|
||||
TYPE_MEDIUM_RECTANGLE,
|
||||
TYPE_SMART_BANNER,
|
||||
TYPE_WIDE_SKYSCRAPER
|
||||
TYPE_WIDE_SKYSCRAPER,
|
||||
TYPE_ADAPTIVE_BANNER
|
||||
};
|
||||
enum ERROR_TYPE
|
||||
{
|
||||
|
@ -24,14 +24,33 @@
|
||||
|
||||
package com.falsinsoft.qtandroidtools;
|
||||
|
||||
import com.google.ads.mediation.admob.AdMobAdapter;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import com.google.android.gms.ads.MobileAds;
|
||||
import com.google.android.gms.ads.AdRequest;
|
||||
import com.google.android.gms.ads.initialization.InitializationStatus;
|
||||
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
|
||||
import com.google.ads.mediation.admob.AdMobAdapter;
|
||||
import android.os.Bundle;
|
||||
|
||||
public class AndroidAdMob
|
||||
{
|
||||
private static boolean mMobileAdsInitialized = false;
|
||||
private boolean mNonPersonalizedAds = false;
|
||||
|
||||
public AndroidAdMob(Activity activityInstance)
|
||||
{
|
||||
if(mMobileAdsInitialized == false)
|
||||
{
|
||||
MobileAds.initialize(activityInstance, new MobileAdsInitializationListener());
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean isMobileAdsInitialized()
|
||||
{
|
||||
return mMobileAdsInitialized;
|
||||
}
|
||||
|
||||
public void setNonPersonalizedAds(boolean npa)
|
||||
{
|
||||
mNonPersonalizedAds = npa;
|
||||
@ -46,4 +65,13 @@ public class AndroidAdMob
|
||||
builder.addNetworkExtrasBundle(AdMobAdapter.class, extras);
|
||||
}
|
||||
}
|
||||
|
||||
private class MobileAdsInitializationListener implements OnInitializationCompleteListener
|
||||
{
|
||||
@Override
|
||||
public void onInitializationComplete(InitializationStatus initializationStatus)
|
||||
{
|
||||
mMobileAdsInitialized = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -38,6 +38,8 @@ import android.util.Log;
|
||||
import android.graphics.Rect;
|
||||
import android.widget.FrameLayout;
|
||||
import android.graphics.Color;
|
||||
import android.view.Display;
|
||||
import android.util.DisplayMetrics;
|
||||
|
||||
public class AndroidAdMobBanner extends AndroidAdMob
|
||||
{
|
||||
@ -52,6 +54,7 @@ public class AndroidAdMobBanner extends AndroidAdMob
|
||||
|
||||
public AndroidAdMobBanner(Activity activityInstance)
|
||||
{
|
||||
super(activityInstance);
|
||||
mViewGroup = (ViewGroup)activityInstance.getWindow().getDecorView().findViewById(android.R.id.content);
|
||||
mBannerListener = new BannerListener();
|
||||
mActivityInstance = activityInstance;
|
||||
@ -100,6 +103,9 @@ public class AndroidAdMobBanner extends AndroidAdMob
|
||||
case TYPE_WIDE_SKYSCRAPER:
|
||||
bannerSize = AdSize.WIDE_SKYSCRAPER;
|
||||
break;
|
||||
case TYPE_ADAPTIVE_BANNER:
|
||||
bannerSize = getAdaptiveBannerAdSize();
|
||||
break;
|
||||
}
|
||||
mBannerView.setAdSize(bannerSize);
|
||||
|
||||
@ -284,6 +290,15 @@ public class AndroidAdMobBanner extends AndroidAdMob
|
||||
uiThread.exec();
|
||||
}
|
||||
|
||||
private AdSize getAdaptiveBannerAdSize()
|
||||
{
|
||||
Display display = mActivityInstance.getWindowManager().getDefaultDisplay();
|
||||
DisplayMetrics outMetrics = new DisplayMetrics();
|
||||
|
||||
display.getMetrics(outMetrics);
|
||||
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(mActivityInstance, (int)(((float)outMetrics.widthPixels) / outMetrics.density));
|
||||
}
|
||||
|
||||
private class BannerListener extends AdListener
|
||||
{
|
||||
public void onAdLoaded()
|
||||
@ -348,6 +363,7 @@ public class AndroidAdMobBanner extends AndroidAdMob
|
||||
private static final int TYPE_MEDIUM_RECTANGLE = 3;
|
||||
private static final int TYPE_SMART_BANNER = 4;
|
||||
private static final int TYPE_WIDE_SKYSCRAPER = 5;
|
||||
private static final int TYPE_ADAPTIVE_BANNER = 6;
|
||||
|
||||
private static final int APP_STATE_CREATE = 0;
|
||||
private static final int APP_STATE_START = 1;
|
||||
|
@ -48,6 +48,7 @@ public class AndroidAdMobInterstitial extends AndroidAdMob
|
||||
|
||||
public AndroidAdMobInterstitial(Activity activityInstance)
|
||||
{
|
||||
super(activityInstance);
|
||||
mInterstitialListener = new InterstitialListener();
|
||||
mActivityInstance = activityInstance;
|
||||
}
|
||||
|
@ -43,6 +43,7 @@ public class AndroidAdMobRewardedVideo extends AndroidAdMob
|
||||
|
||||
public AndroidAdMobRewardedVideo(Activity activityInstance)
|
||||
{
|
||||
super(activityInstance);
|
||||
mRewardedVideoListener = new RewardedVideoListener();
|
||||
mActivityInstance = activityInstance;
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import QtQuick.Controls 2.12
|
||||
import QtQuick.Dialogs 1.3
|
||||
import QtAndroidTools 1.0
|
||||
|
||||
Page {
|
||||
ScrollablePage {
|
||||
id: page
|
||||
padding: 0
|
||||
|
||||
@ -12,7 +12,7 @@ Page {
|
||||
width: parent.wdith
|
||||
height: parent.height * 0.9
|
||||
anchors.centerIn: parent
|
||||
spacing: 20
|
||||
spacing: 10
|
||||
|
||||
Label {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
@ -74,12 +74,43 @@ Page {
|
||||
text: "Banner not loaded"
|
||||
}
|
||||
|
||||
Label {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
font.bold: true
|
||||
font.pixelSize: 15
|
||||
text: "Adaptive Banner"
|
||||
}
|
||||
Rectangle {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
border.width: 1
|
||||
border.color: "black"
|
||||
width: banner3.width
|
||||
height: banner3.height
|
||||
|
||||
QtAndroidAdMobBanner {
|
||||
id: banner3
|
||||
unitId: "ca-app-pub-3940256099942544/6300978111"
|
||||
type: QtAndroidAdMobBanner.TYPE_ADAPTIVE_BANNER
|
||||
keywords: ["keyword_1", "keyword_2", "keyword_3"]
|
||||
onLoading: banner3state.text = "Loading"
|
||||
onLoaded: banner3state.text = "Loaded"
|
||||
onLoadError: banner3state.text = "Error " + errorId
|
||||
}
|
||||
}
|
||||
Label {
|
||||
id: banner3state
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
font.pixelSize: 13
|
||||
text: "Banner not loaded"
|
||||
}
|
||||
|
||||
Button {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: "Show banners"
|
||||
onClicked: {
|
||||
banner1.show();
|
||||
banner2.show();
|
||||
banner3.show();
|
||||
}
|
||||
}
|
||||
Button {
|
||||
@ -88,6 +119,7 @@ Page {
|
||||
onClicked: {
|
||||
banner1.hide();
|
||||
banner2.hide();
|
||||
banner3.hide();
|
||||
}
|
||||
}
|
||||
Button {
|
||||
@ -96,6 +128,7 @@ Page {
|
||||
onClicked: {
|
||||
banner1.reload();
|
||||
banner2.reload();
|
||||
banner3.reload();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user