簡體   English   中英

沒有互聯網時如何更改ADMOB廣告的背景顏色

[英]How to Change Background Color of ADMOB Ad When No Internet Available

我在布局的底部有一個ADMOB廣告,但是當沒有互聯網並且adView設置為View.INVISIBLE時,背景顏色仍然會顯示。

這是我所擁有的:

使用互聯網時,廣告會顯示在彩色區域內,以遮擋其下方的列表視圖項。 像這樣:

在此處輸入圖片說明

在未打開互聯網的情況下,我僅從顯示以下內容的廣告中獲得背景色:

在此處輸入圖片說明

我真正想發生的是:

在此處輸入圖片說明

這是我顯示廣告的代碼

MobileAds.initialize(this, "App Unit Id Here");
        if (isNetworkConnected() == true) {
            AdView adView = (AdView) findViewById(R.id.adView);
            AdRequest adRequest = new AdRequest.Builder().build();
            adView.loadAd(adRequest);
        }

我檢查互聯網是否存在的代碼:

private boolean isNetworkConnected() {
        AdView adView = (AdView) findViewById(R.id.adView);
        ConnectivityManager cm = (ConnectivityManager) getSystemService( Context.CONNECTIVITY_SERVICE);
        NetworkInfo ni = cm.getActiveNetworkInfo();
        if (ni == null) {
            // There are no active networks.
        //Set the visibility to "gone".
        //You can set visibility to gone here or when the function returns,
        //that is why there is a return false and true.
        adView.setBackgroundColor(0xFF00FF00);
        adView.setVisibility(View.GONE);
        return false;
            adView.setVisibility(View.INVISIBLE);
            return false;
        } else
            return true;
    }

廣告的XML布局部分

<LinearLayout
        android:id="@+id/wrappers"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:orientation="vertical">

        <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
            android:id="@+id/adView"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:clipToPadding="false"
            android:background="?attr/colorPrimary"
            ads:adSize="SMART_BANNER"
            ads:adUnitId="ca-app-pub-3736316423083905/5672164398"
            android:visibility="visible">

        </com.google.android.gms.ads.AdView>
    </LinearLayout>

將adView設置為不可見時,是否可以將背景顏色更改為透明? 我嘗試了幾種不同的方法,但是它們沒有用,而且我似乎在堆棧上找不到任何相關內容。 我發現很難相信沒有人願意做過這樣的事情。

任何援助將不勝感激。

這就是實現方式。

  • 只需將AdListener設置為Adview。 而在加載失敗只是setVisibilityy GONE。

例子:-

1)首次加載Adview:-

AdView adView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

2)設置AdListener:-

adView.setAdListener(new AdListener() {
    private void showToast(String message) {
        Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onAdLoaded() {
        showToast("Ad loaded.");
        if (adView.getVisibility() == View.GONE) {
            adView.setVisibility(View.VISIBLE);
        }
    }

    @Override
    public void onAdFailedToLoad(int errorCode) {
        if (adView.getVisibility() == View.VISIBLE) {
            adView.setVisibility(View.GONE);
        }
    }

    @Override
    public void onAdOpened() {
        showToast("Ad opened.");
    }

    @Override
    public void onAdClosed() {
        showToast("Ad closed.");
    }

    @Override
    public void onAdLeftApplication() {
        showToast("Ad left application.");
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM