私はthisチュートリアルに従ってカードを表示し、Tinderのようなスワイプ機能を統合しています。CardViewにランダムに広告を表示するにはどうすればいいですか?
中間のcards
私は広告を表示したいと私はAdMob
を使用しています。ここで
@Layout(R.layout.ad_cards_view)
public class AdCards {
@View(R.id.adView)
NativeExpressAdView nativeExpressAdView;
private Context mContext;
private SwipePlaceHolderView mSwipeView;
public AdCards (Context context, SwipePlaceHolderView swipePlaceHolderView) {
mContext = context;
mSwipeView = swipePlaceHolderView;
}
@Resolve
private void onResolved() {
AdRequest request = new AdRequest.Builder()
.addTestDevice("***")
.addTestDevice("***")
.build();
nativeExpressAdView.setVideoOptions(new VideoOptions.Builder()
.setStartMuted(true)
.build());
nativeExpressAdView.loadAd(request);
}
}
ad_cards_view.xml
です:
は、ここでのコードだ今私は、スタック内ではなく、3枚のカードの前にしていない7枚のカードの後にランダムにこれらのカードを見せたい
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="350dp"
android:layout_height="395dp"
android:layout_gravity="center"
android:layout_marginTop="35dp">
<android.support.v7.widget.CardView
android:orientation="vertical"
android:background="@android:color/white"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_margin="10dp"
app:cardCornerRadius="7dp"
app:cardElevation="4dp">
<com.google.android.gms.ads.NativeExpressAdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
ads:adUnitId="ca-app-pub-xxx"
ads:adSize="320x300">
</com.google.android.gms.ads.NativeExpressAdView>
</android.support.v7.widget.CardView>
</RelativeLayout>
。
は、ここに私が試したものです:このコードは、ランダムに広告を含むカードを見せているが、それは私のニーズに応じて表示されていないと、このカードも第一カードの後に表示されている
rand = new Random();
random = rand.nextInt(8-3) + 3;
count = rand.nextInt(8-3) + 3;
mSwipeView.addView(new Cards(mContext, profile, mSwipeView));
if (count >= random) {
mSwipeView.addView(new AdCards(mContext, mSwipeView));
random = rand.nextInt(8-3) + 3;
count = rand.nextInt(8-3) + 3;
}
けれども。
この広告を含むカードがランダムに表示されますが、3枚のカードではなく7枚のカードではないことを確認するにはどうすればよいですか。
私が正しくあなたの質問を理解している場合は、(3が最小であることと、7が最大である)3と7の間の数字をしたいです。私の答え[here](https://stackoverflow.com/a/21049922/2649012)によると、式は次のようになります。 'final int random = Random.nextInt((7 - 3)+ 1)+ 3;'最終的なint random = Random.nextInt((4)+ 1)+ 3; ' –
@ModularSynth 3から7までの範囲の乱数を得る方法を得ました。私が知りたいのは、 'mSwipeView.addView(新しいAdCards(mContext、mSwipeView));を表示するために使用するアルゴリズムです。質問に記載されているように3枚のカードの前ではなく、7枚のカードの後ではありません。私はあなたがそれを得たと思う。 –
次に、nextIntロジックを要求していません。 SwipeViewカスタムコントロールを管理して、その後のロジックに従う方法を尋ねています。しかし、私はこのTinderSwipeについて何も知らない。 –