0

ホタルのライブ壁紙 ( http://www.livewallpapers.org/fireflies-free-1543/ ) のように、プレビュー画面 (設定画面ではなく) に広告バナーを配置する方法がわかりません。

追加情報: Android 2.2.1 の HTC にホタルの壁紙をインストールすると、プレビュー画面と設定画面の両方にバナーが表示されますが、他の 2 つの Sony Ericsson (2.3.3) ではバナーのみが表示されます。設定画面。それは、Sony Ericsson や 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 フォルダに ad_layout.xml というタイトルの新しい 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 に答える