Here is how you do it. Create a view for one viewpager page and inflate it from XML. The XML should contain your layout. Below is a custom view class for a banner advert.
public class AdvertBannerNative extends LinearLayout {
private static String LOG_TAG = AdvertBannerNative.class.getName();
private Context mContext;
public AdvertBannerNative(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
MoPubNative.MoPubNativeEventListener moPubNativeEventListener = new MoPubNative.MoPubNativeEventListener() {
@Override
public void onNativeImpression(View view) { }
@Override
public void onNativeClick(View view) { }
};
MoPubNative.MoPubNativeNetworkListener moPubNativeNetworkListener = new MoPubNative.MoPubNativeNetworkListener() {
@Override
public void onNativeLoad(NativeResponse nativeResponse) {
ViewBinder viewBinder = new ViewBinder.Builder(R.layout.ad_native_mopub_banner)
.iconImageId(R.id.native_icon_image)
.titleId(R.id.native_title)
.textId(R.id.native_text)
.callToActionId(R.id.native_cta)
.build();
AdapterHelper ah = new AdapterHelper(mContext, 0, 3);
View v = ah.getAdView(null, AdvertBannerNative.this, nativeResponse, viewBinder, null);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
addView(v, params);
}
@Override
public void onNativeFail(NativeErrorCode errorCode) {}
};
String ad_id = "advert id here";
MoPubNative moPubNative = new MoPubNative(context, ad_id, moPubNativeNetworkListener);
moPubNative.setNativeEventListener(moPubNativeEventListener);
final EnumSet<RequestParameters.NativeAdAsset> desiredAssets = EnumSet.of(
RequestParameters.NativeAdAsset.TITLE,
RequestParameters.NativeAdAsset.TEXT,
RequestParameters.NativeAdAsset.ICON_IMAGE,
RequestParameters.NativeAdAsset.CALL_TO_ACTION_TEXT);
final Location location = null;
final String keywords = "";
RequestParameters mRequestParameters = new RequestParameters.Builder()
.location(location)
.keywords(keywords)
.desiredAssets(desiredAssets)
.build();
moPubNative.makeRequest(mRequestParameters);
}
}