0

与萤火虫动态壁纸(http://www.livewallpapers.org/fireflies-free-1543/)一样,我不知道如何在预览屏幕(不是设置屏幕)中放置广告横幅。

附加信息:当我在 Android 2.2.1 上的 HTC 上安装萤火虫壁纸时,横幅显示在预览和设置屏幕中,但在我的另外两个索尼爱立信(在 2.3.3 上)我只能看到横幅设置屏幕。这与索尼爱立信或Android版本有关吗?

谢谢你。

PS我确实看过这个链接,但没有找到我的问题的答案:

如何在动态壁纸的设置屏幕中放置 admob adview?

4

1 回答 1

0

创建一个新类 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"/>

就是这样。它会完美地工作。

于 2012-06-03T07:24:44.233 回答