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;
}
それとも別の解決策がありますか?