2

Android で実行している javafx アプリがあり、一部の画面に Google Adwords を配置したいと考えています。私が抱えている問題は、AdWords が Google AdView を使用して、Android プレゼンテーション オブジェクトであり、JavaFX プレゼンテーション レイヤーと互換性のない追加を表示することです。

AdView を作成するサンプル コード

import com.google.android.gms.ads.MobileAds;

import javafxports.android.FXActivity;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;

/**
 * Constructor creates AdView
 * Call getAdView() to retrieve AdView object.
 */
public class GoogleAds {

    private AdView adView = null;
    public GoogleAds() {
        AdView mAdView = createAddView();
        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)        // All emulators
                .build();
        mAdView.loadAd(adRequest);
    }
...

これで、プレゼンテーションの準備ができた com.google.android.gms.ads.AdView オブジェクトができました

を使用してAndroidビュー階層に追加できます

private void includeGoogleAdView(LinearLayout layout) {
    AdView adView = GoogleAds().getAdView();
    layout.addView(mAdView);
}

Androidアプリとして実行すると、これらすべてが期待どおりに機能します。

問題は、「AdView を javafx プレゼンテーション レイヤーに表示することはできますか?」ということです。.

com.google.android.gms.ads.AdView を javafx.scene.Node のインスタンスにする方法はありますか?

private Node addToPane(AdView adView) {
    javafx.scene.layout.Pane pane = new javafx.scene.layout.Pane();
    pane.getChildren().addAll( canvas, adView);
    return pane;
}

それとも別の解決策がありますか?

4

1 に答える 1