Как разместить рекламный баннер на экране предварительного просмотра живых обоев?

Как и в живых обоях «Светлячки» (http://www.livewallpapers.org/fireflies-free-1543/), я не знаю, как разместить рекламный баннер на экране предварительного просмотра (не на экране настроек).

Дополнительная информация: когда я устанавливаю обои «Светлячки» на свой HTC с Android 2.2.1, баннер отображается как на экранах предварительного просмотра, так и на экранах настроек, но на двух других моих Sony Ericsson (на 2.3.3) я вижу баннер только в экраны настроек. Это как-то связано с Sony Ericsson или версией Android?

Спасибо.

P.S. Я смотрел эту ссылку, но не нашел ответа на свой вопрос:

Как сделать Я поставил рекламу admob на экран настроек для живых обоев?


person Tran    schedule 16.09.2011    source источник
comment
Re: ваша дополнительная информация: Возможно, реклама не появляется, потому что у них просто не было рекламы для показа, а не разница между телефонами. Я использую admob, и только около 70-80% запросов фактически приводят к показу рекламы (уровень заполнения), в противном случае просмотр рекламы просто не появляется. Не знаю, поможет ли :)   -  person Jay    schedule 17.09.2011


Ответы (1)


Создайте новый класс AdPreference.java и включите этот код:

public class AdPreference extends Preference {

    public AdPreference(Context context, AttributeSet attrs, int defStyle) {super    (context, attrs, defStyle);}
    public AdPreference(Context context, AttributeSet attrs) {super(context, attrs);}
    public AdPreference(Context context) {super(context);}

    @Override
    protected View onCreateView(ViewGroup parent) {
        // this will create the linear layout defined in ads_layout.xml
        View view = super.onCreateView(parent);

        // the context is a PreferenceActivity
        Activity activity = (Activity)getContext();

        // Create the adView
        AdView adView = new AdView(activity, AdSize.BANNER, "YOUR_ADMOB_ID_HERE");

        ((LinearLayout)view).addView(adView);

        // Initiate a generic request to load it with an ad
        AdRequest request = new AdRequest();
        adView.loadAd(request);     

        return view;    
    }
}

В папке res/layout создайте новый макет xml с именем ad_layout.xml, который должен быть точным. Затем включите этот код:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="vertical">  
</LinearLayout>

Затем в ваших «настройках» xml добавьте это сразу после строки xmlns:

<com.yourpackagename.AdPreference android:layout="@layout/ad_layout"/>

В вашем AndroidManifest.xml добавьте это перед

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

 <meta-data android:name="ADMOB_ALLOW_LOCATION_FOR_ADS" android:value="false" />

Также добавьте это в свой манифест:

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

Вот и все. Это будет работать отлично.

person Steve C.    schedule 03.06.2012