Flex、AIR、Java、Androidなど

1月17日 2011

【Android】XML Layoutファイルを使用せずAdlantisの広告を組み込む方法

Posted by: tachibana In: Android| プログラミング


色々な広告配信サービスが出てきて、開発者にはうれしいですね。

今回、Adlantisさんの広告を入れてみようと色々やってみたのですが、組み込み方のページにXMLレイアウトファイルを使った方法しかなかったので、Javaのコード中で動的に追加したりできるようやってみました。

途中までは上記の組み込み方のページに図入りで詳しく書かれていますのでそちらを見た方が早いと思います。

何故か広告のViewの高さが取れないのでそこをdipを使ってやるだけなんですけどね。とりあえず広告のView自体はXMLで書いたのを管理画面からダウンロードして下さい。こんな感じのですね。

<?xml version="1.0" encoding="utf-8"?>
<jp.Adlantis.Android.AdlantisView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.hoge.AdlantisSampleWithinJavaCode"
    android:id="@+id/adView"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:layout_weight="1"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    />

これをレイアウトフォルダの放りこんで、あとはManifestにパーミッションと独自のユーザーIDを管理画面からコピペ。

Avtivity等に貼り付けるときのaddViewの引数にWRAP_CONTENT使わずにdipで調整、これだけです。コードは以下。

package com.hoge.AdlantisSampleWithinJavaCode;

import jp.Adlantis.Android.AdlantisView;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);

        LayoutInflater adFactory = LayoutInflater.from(MainActivity.this);

        AdlantisView adlantisView = (AdlantisView)adFactory.inflate(R.layout.adlantisview, null);
        layout.addView(adlantisView, new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.FILL_PARENT,
                (int)(50 * getResources().getDisplayMetrics().density)));

        String array[] = {"row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row", "row"};

        ListView listView = new ListView(this);
        ListAdapter listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array);
        listView.setAdapter(listAdapter);

        layout.addView(listView, new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.FILL_PARENT,
                LinearLayout.LayoutParams.FILL_PARENT));

        setContentView(layout);
    }
}

こんな感じ広告をコード中でイニシャライズして動的に表示させることができます。

Androidしばらくやってないのでやっちゃいけないことしてるかもしれませんのでその点はご了承を。とりあえずこれで他の広告と同じように出せます。

サンプルプロジェクトもアップしときます。ユーザーIDをご自分のものに置き換えて試してみてください。

AdlantisSampleWithinJavaCode.zip

EasyFreeAds Blog News Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google Yahoo Buzz StumbleUpon

1 Response to "【Android】XML Layoutファイルを使用せずAdlantisの広告を組み込む方法"

1 | Google AdMob Mediation を実装したほうがいいんぢゃねか!? で 使い方 | 新! #android ファッション通信 Σ(^A^;)

5月12日 2013 at 9:11 PM

Avatar

[...] 【Android】XML Layoutファイルを使用せずAdlantisの広告を組み込む方法 http://stachibana.biz/?p=1239 XMLに埋めておいて gone で非表示にしておく Android開発 [...]

Categories

 

2017年7月
« 4月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

About

Author: tachibana

  • ちょっとしたことはTwitterに書いています。こっちはアプリの公開等の時に更新されます。
  • 最近はもっぱらJavaとObjective Cです。AS3は飽きました。
  • スクリプト言語ではPerlが好きでしたが最近はGAE/Jで何でもやってます。
  • Linuxは自宅サーバー建てるのがやっとのレベルです。前の会社で何日も徹夜してやったのはいい思い出です。
  • アプリへのご要望などご意見等ありましたらお気軽にご連絡下さい。

Alternative content here