Java Code Examples for com.google.android.gms.ads.formats.NativeAd

The following are top voted examples for showing how to use com.google.android.gms.ads.formats.NativeAd. These examples are extracted from open source projects. You can vote up the examples you like and your votes will be used in our system to generate more good examples.
Example 1
Project: googleads-mobile-android-mediation   File: SampleNativeContentAdMapper.java   View source code 6 votes vote down vote up
public SampleNativeContentAdMapper(SampleNativeContentAd ad, NativeAdOptions adOptions) {
    mSampleAd = ad;
    mNativeAdOptions = adOptions;

    setAdvertiser(mSampleAd.getAdvertiser());
    setHeadline(mSampleAd.getHeadline());
    setBody(mSampleAd.getBody());
    setCallToAction(mSampleAd.getCallToAction());

    setLogo(new SampleNativeMappedImage(ad.getLogo(), ad.getLogoUri(),
            SampleCustomEvent.SAMPLE_SDK_IMAGE_SCALE));

    List<NativeAd.Image> imagesList = new ArrayList<NativeAd.Image>();
    imagesList.add(new SampleNativeMappedImage(ad.getImage(), ad.getImageUri(),
            SampleCustomEvent.SAMPLE_SDK_IMAGE_SCALE));
    setImages(imagesList);

    Bundle extras = new Bundle();
    extras.putString(SampleCustomEvent.DEGREE_OF_AWESOMENESS, ad.getDegreeOfAwesomeness());
    this.setExtras(extras);

    setOverrideClickHandling(false);
    setOverrideImpressionRecording(false);

    setAdChoicesContent(mSampleAd.getInformationIcon());
}
 
Example 2
Project: android-ads   File: ContentAdViewHolder.java   View source code 6 votes vote down vote up
/**
 * Populates the asset {@link View}s contained it the {@link NativeContentAdView} with data
 * from the {@link NativeContentAd} object. This method is invoked when an
 * {@link ContentAdFetcher} has successfully loaded a {@link NativeContentAd}.
 *
 * @param contentAd the ad that is to be displayed
 */
public void populateView(NativeContentAd contentAd) {
    ((TextView) mAdView.getHeadlineView()).setText(contentAd.getHeadline());
    ((TextView) mAdView.getBodyView()).setText(contentAd.getBody());
    ((TextView) mAdView.getCallToActionView()).setText(contentAd.getCallToAction());
    ((TextView) mAdView.getAdvertiserView()).setText(contentAd.getAdvertiser());

    List<NativeAd.Image> images = contentAd.getImages();

    if (images != null && images.size() > 0) {
        ((ImageView) mAdView.getImageView())
                .setImageDrawable(images.get(0).getDrawable());
    }

    NativeAd.Image logoImage = contentAd.getLogo();

    if (logoImage != null) {
        ((ImageView) mAdView.getLogoView())
                .setImageDrawable(logoImage.getDrawable());
    }

    // assign native ad object to the native view and make visible
    mAdView.setNativeAd(contentAd);
    mAdView.setVisibility(View.VISIBLE);
}
 
Example 3
Project: android-ads   File: AppInstallAdViewHolder.java   View source code 6 votes vote down vote up
/**
 * Populates the asset {@link View}s contained it the {@link NativeAppInstallAdView} with data
 * from the {@link NativeAppInstallAd} object. This method is invoked when an
 * {@link AppInstallAdFetcher} has successfully loaded a {@link NativeAppInstallAd}.
 *
 * @param appInstallAd the ad that is to be displayed
 */
public void populateView(NativeAppInstallAd appInstallAd) {
    ((TextView) mAdView.getHeadlineView()).setText(appInstallAd.getHeadline());
    ((TextView) mAdView.getBodyView()).setText(appInstallAd.getBody());
    ((TextView) mAdView.getPriceView()).setText(appInstallAd.getPrice());
    ((TextView) mAdView.getStoreView()).setText(appInstallAd.getStore());
    ((Button) mAdView.getCallToActionView()).setText(appInstallAd.getCallToAction());
    ((ImageView) mAdView.getIconView()).setImageDrawable(appInstallAd.getIcon().getDrawable());
    ((RatingBar) mAdView.getStarRatingView())
            .setRating(appInstallAd.getStarRating().floatValue());

    List<NativeAd.Image> images = appInstallAd.getImages();

    if (images.size() > 0) {
        ((ImageView) mAdView.getImageView())
                .setImageDrawable(images.get(0).getDrawable());
    }

    // assign native ad object to the native view and make visible
    mAdView.setNativeAd(appInstallAd);
    mAdView.setVisibility(View.VISIBLE);
}
 
Example 4
Project: admob-native-advanced-feed   File: MainActivity.java   View source code 5 votes vote down vote up
private void insertAdsInMenuItems() {
    if (mNativeAds.size() <= 0) {
        return;
    }

    int offset = (mRecyclerViewItems.size() / mNativeAds.size()) + 1;
    int index = 0;
    for (NativeAd ad : mNativeAds) {
        mRecyclerViewItems.add(index, ad);
        index = index + offset;
    }
}
 
Example 5
Project: admob-native-advanced-feed   File: RecyclerViewAdapter.java   View source code 5 votes vote down vote up
/**
 * Populates a {@link NativeContentAdView} object with data from a given
 * {@link NativeContentAd}.
 *
 * @param nativeContentAd the object containing the ad's assets
 * @param adView          the view to be populated
 */
private void populateContentAdView(NativeContentAd nativeContentAd,
                                   NativeContentAdView adView) {
    // Some assets are guaranteed to be in every NativeContentAd.
    ((TextView) adView.getHeadlineView()).setText(nativeContentAd.getHeadline());
    ((TextView) adView.getBodyView()).setText(nativeContentAd.getBody());
    ((TextView) adView.getCallToActionView()).setText(nativeContentAd.getCallToAction());
    ((TextView) adView.getAdvertiserView()).setText(nativeContentAd.getAdvertiser());

    List<NativeAd.Image> images = nativeContentAd.getImages();

    if (images.size() > 0) {
        ((ImageView) adView.getImageView()).setImageDrawable(images.get(0).getDrawable());
    }

    // Some aren't guaranteed, however, and should be checked.
    NativeAd.Image logoImage = nativeContentAd.getLogo();

    if (logoImage == null) {
        adView.getLogoView().setVisibility(View.INVISIBLE);
    } else {
        ((ImageView) adView.getLogoView()).setImageDrawable(logoImage.getDrawable());
        adView.getLogoView().setVisibility(View.VISIBLE);
    }

    // Assign native ad object to the native view.
    adView.setNativeAd(nativeContentAd);
}
 
Example 6
Project: googleads-mobile-android-mediation   File: SampleNativeContentAdMapper.java   View source code 5 votes vote down vote up
public SampleNativeContentAdMapper(SampleNativeContentAd ad, NativeAdOptions adOptions) {
    mSampleAd = ad;
    mNativeAdOptions = adOptions;

    setAdvertiser(mSampleAd.getAdvertiser());
    setHeadline(mSampleAd.getHeadline());
    setBody(mSampleAd.getBody());
    setCallToAction(mSampleAd.getCallToAction());

    setLogo(new SampleNativeMappedImage(ad.getLogo(), ad.getLogoUri(),
            SampleAdapter.SAMPLE_SDK_IMAGE_SCALE));

    List<NativeAd.Image> imagesList = new ArrayList<NativeAd.Image>();
    imagesList.add(new SampleNativeMappedImage(ad.getImage(), ad.getImageUri(),
            SampleAdapter.SAMPLE_SDK_IMAGE_SCALE));
    setImages(imagesList);

    Bundle extras = new Bundle();
    extras.putString(SampleAdapter.DEGREE_OF_AWESOMENESS, ad.getDegreeOfAwesomeness());
    this.setExtras(extras);

    SampleMediaView mediaView = mSampleAd.getMediaView();

    // Some ads from Sample SDK has video assets and some do not.
    if(mediaView != null) {
        setMediaView(mediaView);
        setHasVideoContent(true);
    } else {
        setHasVideoContent(false);
    }

    setOverrideClickHandling(false);
    setOverrideImpressionRecording(false);

    setAdChoicesContent(mSampleAd.getInformationIcon());
}
 
Example 7
Project: googleads-mobile-android-mediation   File: SampleNativeAppInstallAdMapper.java   View source code 5 votes vote down vote up
public SampleNativeAppInstallAdMapper(SampleNativeAppInstallAd ad, NativeAdOptions adOptions) {
    mSampleAd = ad;
    mNativeAdOptions = adOptions;
    setHeadline(mSampleAd.getHeadline());
    setBody(mSampleAd.getBody());
    setCallToAction(mSampleAd.getCallToAction());
    setStarRating(mSampleAd.getStarRating());
    setStore(mSampleAd.getStoreName());
    setIcon(new SampleNativeMappedImage(ad.getAppIcon(), ad.getAppIconUri(),
            SampleAdapter.SAMPLE_SDK_IMAGE_SCALE));

    List<NativeAd.Image> imagesList = new ArrayList<NativeAd.Image>();
    imagesList.add(new SampleNativeMappedImage(ad.getImage(), ad.getImageUri(),
            SampleAdapter.SAMPLE_SDK_IMAGE_SCALE));
    setImages(imagesList);

    NumberFormat formatter = NumberFormat.getCurrencyInstance();
    String priceString = formatter.format(mSampleAd.getPrice());
    setPrice(priceString);

    Bundle extras = new Bundle();
    extras.putString(SampleAdapter.DEGREE_OF_AWESOMENESS, ad.getDegreeOfAwesomeness());
    this.setExtras(extras);

    SampleMediaView mediaView = mSampleAd.getMediaView();

    // Some ads from Sample SDK has video assets and some do not.
    if (mediaView != null) {
        setMediaView(mediaView);
        setHasVideoContent(true);
    } else {
        setHasVideoContent(false);
    }

    setOverrideClickHandling(false);
    setOverrideImpressionRecording(false);

    setAdChoicesContent(mSampleAd.getInformationIcon());
}
 
Example 8
Project: googleads-mobile-android-mediation   File: SampleNativeAppInstallAdMapper.java   View source code 5 votes vote down vote up
public SampleNativeAppInstallAdMapper(SampleNativeAppInstallAd ad, NativeAdOptions adOptions) {
    mSampleAd = ad;
    mNativeAdOptions = adOptions;
    setHeadline(mSampleAd.getHeadline());
    setBody(mSampleAd.getBody());
    setCallToAction(mSampleAd.getCallToAction());
    setStarRating(mSampleAd.getStarRating());
    setStore(mSampleAd.getStoreName());
    setIcon(new SampleNativeMappedImage(ad.getAppIcon(), ad.getAppIconUri(),
            SampleCustomEvent.SAMPLE_SDK_IMAGE_SCALE));

    List<NativeAd.Image> imagesList = new ArrayList<NativeAd.Image>();
    imagesList.add(new SampleNativeMappedImage(ad.getImage(), ad.getImageUri(),
            SampleCustomEvent.SAMPLE_SDK_IMAGE_SCALE));
    setImages(imagesList);

    NumberFormat formatter = NumberFormat.getCurrencyInstance();
    String priceString = formatter.format(mSampleAd.getPrice());
    setPrice(priceString);

    Bundle extras = new Bundle();
    extras.putString(SampleCustomEvent.DEGREE_OF_AWESOMENESS, ad.getDegreeOfAwesomeness());
    this.setExtras(extras);

    setOverrideClickHandling(false);
    setOverrideImpressionRecording(false);

    setAdChoicesContent(mSampleAd.getInformationIcon());
}
 
Example 9
Project: admobadapter   File: AdmobFetcher.java   View source code 5 votes vote down vote up
/**
 * A handler for received native ads
 */
private synchronized void onAdFetched(NativeAd adNative) {
    Log.i(TAG, "onAdFetched");
    int index = -1;
    if (canUseThisAd(adNative)) {
        mPrefetchedAdList.add(adNative);
        index = mPrefetchedAdList.size()-1;
        mNoOfFetchedAds++;
    }
    lockFetch.set(false);
    mFetchFailCount = 0;
    ensurePrefetchAmount();
    onAdLoaded(index);
}
 
Example 10
Project: admobadapter   File: AdmobRecyclerAdapterWrapper.java   View source code 5 votes vote down vote up
@Override
public int getItemViewType(int position) {
    if (AdapterCalculator.canShowAdAtPosition(position, adFetcher.getFetchedAdsCount())) {
        int adPos = AdapterCalculator.getAdIndex(position);
        NativeAd ad = adFetcher.getAdForIndex(adPos);
        return ad instanceof NativeAppInstallAd ? getViewTypeAdInstall() : getViewTypeAdContent();
    } else {
        int origPos = AdapterCalculator.getOriginalContentPosition(position,
                adFetcher.getFetchedAdsCount(), mAdapter.getItemCount());
        return mAdapter.getItemViewType(origPos);
    }
}
 
Example 11
Project: android-ads   File: MainActivity.java   View source code 5 votes vote down vote up
/**
 * Populates a {@link NativeContentAdView} object with data from a given
 * {@link NativeContentAd}.
 *
 * @param nativeContentAd the object containing the ad's assets
 * @param adView          the view to be populated
 */
private void populateContentAdView(NativeContentAd nativeContentAd,
                                   NativeContentAdView adView) {
    mVideoStatus.setText("Video status: Ad does not contain a video asset.");
    mRefresh.setEnabled(true);

    adView.setHeadlineView(adView.findViewById(R.id.contentad_headline));
    adView.setImageView(adView.findViewById(R.id.contentad_image));
    adView.setBodyView(adView.findViewById(R.id.contentad_body));
    adView.setCallToActionView(adView.findViewById(R.id.contentad_call_to_action));
    adView.setLogoView(adView.findViewById(R.id.contentad_logo));
    adView.setAdvertiserView(adView.findViewById(R.id.contentad_advertiser));

    // Some assets are guaranteed to be in every NativeContentAd.
    ((TextView) adView.getHeadlineView()).setText(nativeContentAd.getHeadline());
    ((TextView) adView.getBodyView()).setText(nativeContentAd.getBody());
    ((TextView) adView.getCallToActionView()).setText(nativeContentAd.getCallToAction());
    ((TextView) adView.getAdvertiserView()).setText(nativeContentAd.getAdvertiser());

    List<NativeAd.Image> images = nativeContentAd.getImages();

    if (images.size() > 0) {
        ((ImageView) adView.getImageView()).setImageDrawable(images.get(0).getDrawable());
    }

    // Some aren't guaranteed, however, and should be checked.
    NativeAd.Image logoImage = nativeContentAd.getLogo();

    if (logoImage == null) {
        adView.getLogoView().setVisibility(View.INVISIBLE);
    } else {
        ((ImageView) adView.getLogoView()).setImageDrawable(logoImage.getDrawable());
        adView.getLogoView().setVisibility(View.VISIBLE);
    }

    // Assign native ad object to the native view.
    adView.setNativeAd(nativeContentAd);
}
 
Example 12
Project: googleads-mobile-android-examples   File: MainActivity.java   View source code 5 votes vote down vote up
/**
 * Populates a {@link NativeContentAdView} object with data from a given
 * {@link NativeContentAd}.
 *
 * @param nativeContentAd the object containing the ad's assets
 * @param adView          the view to be populated
 */
private void populateContentAdView(NativeContentAd nativeContentAd,
                                   NativeContentAdView adView) {
    mVideoStatus.setText("Video status: Ad does not contain a video asset.");
    mRefresh.setEnabled(true);

    adView.setHeadlineView(adView.findViewById(R.id.contentad_headline));
    adView.setImageView(adView.findViewById(R.id.contentad_image));
    adView.setBodyView(adView.findViewById(R.id.contentad_body));
    adView.setCallToActionView(adView.findViewById(R.id.contentad_call_to_action));
    adView.setLogoView(adView.findViewById(R.id.contentad_logo));
    adView.setAdvertiserView(adView.findViewById(R.id.contentad_advertiser));

    // Some assets are guaranteed to be in every NativeContentAd.
    ((TextView) adView.getHeadlineView()).setText(nativeContentAd.getHeadline());
    ((TextView) adView.getBodyView()).setText(nativeContentAd.getBody());
    ((TextView) adView.getCallToActionView()).setText(nativeContentAd.getCallToAction());
    ((TextView) adView.getAdvertiserView()).setText(nativeContentAd.getAdvertiser());

    List<NativeAd.Image> images = nativeContentAd.getImages();

    if (images.size() > 0) {
        ((ImageView) adView.getImageView()).setImageDrawable(images.get(0).getDrawable());
    }

    // Some aren't guaranteed, however, and should be checked.
    NativeAd.Image logoImage = nativeContentAd.getLogo();

    if (logoImage == null) {
        adView.getLogoView().setVisibility(View.INVISIBLE);
    } else {
        ((ImageView) adView.getLogoView()).setImageDrawable(logoImage.getDrawable());
        adView.getLogoView().setVisibility(View.VISIBLE);
    }

    // Assign native ad object to the native view.
    adView.setNativeAd(nativeContentAd);
}
 
Example 13
Project: mobile-sdk-android   File: AdMobNativeAdResponse.java   View source code 5 votes vote down vote up
AdMobNativeAdResponse(NativeAd ad, AdMobNativeSettings.AdMobNativeType type) {
    this.nativeAd = ad;
    this.type = type;
    runnable = new Runnable() {
        @Override
        public void run() {
            if (coverImage != null) {
                coverImage.recycle();
                coverImage = null;
            }
            if (icon != null) {
                icon.recycle();
                icon = null;
            }
            listener = null;
            expired = true;
            if (AdMobNativeAdResponse.this.nativeAd != null) {
                try {
                    switch (AdMobNativeAdResponse.this.type) {
                        case APP_INSTALL:
                            NativeAppInstallAd appInstallAd = (NativeAppInstallAd) AdMobNativeAdResponse.this.nativeAd;
                            appInstallAd.destroy();
                            break;
                        case CONTENT_AD:
                            NativeContentAd contentAd = (NativeContentAd) AdMobNativeAdResponse.this.nativeAd;
                            contentAd.destroy();
                            break;
                    }
                } catch (ClassCastException e) {
                }
            }
        }
    };
    nativeExpireHandler = new Handler(Looper.getMainLooper());
    nativeExpireHandler.postDelayed(runnable, Settings.NATIVE_AD_RESPONSE_EXPIRATION_TIME);
    loadAssets();
}
 
Example 14
Project: mopub-nativead-adapters   File: AdMobNativeAd.java   View source code 4 votes vote down vote up
public NativeAd getNativeAd() {
    return this.nativeAppInstallAd == null ? this.nativeContentAd : this.nativeAppInstallAd;
}
 
Example 15
Project: googleads-mobile-android-mediation   File: MainActivity.java   View source code 4 votes vote down vote up
/**
 * Populates a {@link NativeAppInstallAdView} object with data from a given
 * {@link NativeAppInstallAd}.
 *
 * @param nativeAppInstallAd the object containing the ad's assets
 * @param adView             the view to be populated
 */
private void populateAppInstallAdView(NativeAppInstallAd nativeAppInstallAd,
                                      NativeAppInstallAdView adView) {
    VideoController videoController = nativeAppInstallAd.getVideoController();

    // Assign native ad object to the native view.
    adView.setNativeAd(nativeAppInstallAd);

    adView.setHeadlineView(adView.findViewById(R.id.appinstall_headline));
    adView.setBodyView(adView.findViewById(R.id.appinstall_body));
    adView.setCallToActionView(adView.findViewById(R.id.appinstall_call_to_action));
    adView.setIconView(adView.findViewById(R.id.appinstall_app_icon));
    adView.setPriceView(adView.findViewById(R.id.appinstall_price));
    adView.setStarRatingView(adView.findViewById(R.id.appinstall_stars));
    adView.setStoreView(adView.findViewById(R.id.appinstall_store));

    // Some assets are guaranteed to be in every NativeAppInstallAd.
    ((TextView) adView.getHeadlineView()).setText(nativeAppInstallAd.getHeadline());
    ((TextView) adView.getBodyView()).setText(nativeAppInstallAd.getBody());
    ((Button) adView.getCallToActionView()).setText(nativeAppInstallAd.getCallToAction());
    ((ImageView) adView.getIconView()).setImageDrawable(nativeAppInstallAd.getIcon()
            .getDrawable());

    MediaView sampleMediaView = adView.findViewById(R.id.appinstall_media);
    ImageView imageView = adView.findViewById(R.id.appinstall_image);

    if (videoController.hasVideoContent()) {
        imageView.setVisibility(View.GONE);
        adView.setMediaView(sampleMediaView);
    } else {
        sampleMediaView.setVisibility(View.GONE);
        adView.setImageView(imageView);

        List<NativeAd.Image> images = nativeAppInstallAd.getImages();

        if (images.size() > 0) {
            ((ImageView) adView.getImageView()).setImageDrawable(images.get(0).getDrawable());
        }
    }

    // Some aren't guaranteed, however, and should be checked.
    if (nativeAppInstallAd.getPrice() == null) {
        adView.getPriceView().setVisibility(View.INVISIBLE);
    } else {
        adView.getPriceView().setVisibility(View.VISIBLE);
        ((TextView) adView.getPriceView()).setText(nativeAppInstallAd.getPrice());
    }

    if (nativeAppInstallAd.getStore() == null) {
        adView.getStoreView().setVisibility(View.INVISIBLE);
    } else {
        adView.getStoreView().setVisibility(View.VISIBLE);
        ((TextView) adView.getStoreView()).setText(nativeAppInstallAd.getStore());
    }

    if (nativeAppInstallAd.getStarRating() == null) {
        adView.getStarRatingView().setVisibility(View.INVISIBLE);
    } else {
        ((RatingBar) adView.getStarRatingView())
                .setRating(nativeAppInstallAd.getStarRating().floatValue());
        adView.getStarRatingView().setVisibility(View.VISIBLE);
    }

    // Handle the fact that this could be a Sample SDK native ad, which includes a
    // "degree of awesomeness" field.

    Bundle extras = nativeAppInstallAd.getExtras();
    if (extras.containsKey(SampleCustomEvent.DEGREE_OF_AWESOMENESS)) {
        TextView degree = (TextView) adView.findViewById(R.id.appinstall_degreeofawesomeness);
        degree.setVisibility(View.VISIBLE);
        degree.setText(extras.getString(SampleCustomEvent.DEGREE_OF_AWESOMENESS));
    }
}
 
Example 16
Project: googleads-mobile-android-mediation   File: MainActivity.java   View source code 4 votes vote down vote up
/**
 * Populates a {@link NativeContentAdView} object with data from a given
 * {@link NativeContentAd}.
 *
 * @param nativeContentAd the object containing the ad's assets
 * @param adView          the view to be populated
 */
private void populateContentAdView(NativeContentAd nativeContentAd,
                                   NativeContentAdView adView) {
    // Assign native ad object to the native view.
    adView.setNativeAd(nativeContentAd);

    adView.setHeadlineView(adView.findViewById(R.id.contentad_headline));
    adView.setImageView(adView.findViewById(R.id.contentad_image));
    adView.setBodyView(adView.findViewById(R.id.contentad_body));
    adView.setCallToActionView(adView.findViewById(R.id.contentad_call_to_action));
    adView.setLogoView(adView.findViewById(R.id.contentad_logo));
    adView.setAdvertiserView(adView.findViewById(R.id.contentad_advertiser));

    // Some assets are guaranteed to be in every NativeContentAd.
    ((TextView) adView.getHeadlineView()).setText(nativeContentAd.getHeadline());
    ((TextView) adView.getBodyView()).setText(nativeContentAd.getBody());
    ((TextView) adView.getCallToActionView()).setText(nativeContentAd.getCallToAction());
    ((TextView) adView.getAdvertiserView()).setText(nativeContentAd.getAdvertiser());

    List<NativeAd.Image> images = nativeContentAd.getImages();

    if (images.size() > 0) {
        ((ImageView) adView.getImageView()).setImageDrawable(images.get(0).getDrawable());
    }

    // Some aren't guaranteed, however, and should be checked.
    NativeAd.Image logoImage = nativeContentAd.getLogo();

    if (logoImage == null) {
        adView.getLogoView().setVisibility(View.INVISIBLE);
    } else {
        ((ImageView) adView.getLogoView())
                .setImageDrawable(logoImage.getDrawable());
        adView.getLogoView().setVisibility(View.VISIBLE);
    }

    // Handle the fact that this could be a Sample SDK native ad, which includes a
    // "degree of awesomeness" field.

    Bundle extras = nativeContentAd.getExtras();
    if (extras.containsKey(SampleCustomEvent.DEGREE_OF_AWESOMENESS)) {
        TextView degree = (TextView) adView.findViewById(R.id.appinstall_degreeofawesomeness);
        degree.setVisibility(View.VISIBLE);
        degree.setText(extras.getString(SampleCustomEvent.DEGREE_OF_AWESOMENESS));
    }
}
 
Example 17
Project: admobadapter   File: InstallAppAdLayoutContext.java   View source code 4 votes vote down vote up
@Override
public void bind(NativeAdView nativeAdView, NativeAd nativeAd) throws ClassCastException{
    if (nativeAdView == null || nativeAd == null) return;
    if(!(nativeAd instanceof NativeAppInstallAd) || !(nativeAdView instanceof NativeAppInstallAdView))
        throw new ClassCastException();

    NativeAppInstallAd ad = (NativeAppInstallAd) nativeAd;
    NativeAppInstallAdView adView = (NativeAppInstallAdView) nativeAdView;

    // Locate the view that will hold the headline, set its text, and call the
    // NativeAppInstallAdView's setHeadlineView method to register it.
    TextView tvHeader = (TextView) adView.findViewById(R.id.tvHeader);
    tvHeader.setText(ad.getHeadline());
    adView.setHeadlineView(tvHeader);

    TextView tvDescription = (TextView) adView.findViewById(R.id.tvDescription);
    tvDescription.setText(ad.getBody());
    adView.setBodyView(tvDescription);

    ImageView ivLogo = (ImageView) adView.findViewById(R.id.ivLogo);
    if(ad.getIcon()!=null)
        ivLogo.setImageDrawable(ad.getIcon().getDrawable());
    adView.setIconView(ivLogo);

    Button btnAction = (Button) adView.findViewById(R.id.btnAction);
    btnAction.setText(ad.getCallToAction());
    adView.setCallToActionView(btnAction);

    TextView tvStore = (TextView) adView.findViewById(R.id.tvStore);
    tvStore.setText(ad.getStore());
    adView.setStoreView(tvStore);

    TextView tvPrice = (TextView) adView.findViewById(R.id.tvPrice);
    tvPrice.setText(ad.getPrice());
    adView.setPriceView(tvPrice);

    ImageView ivImage = (ImageView) adView.findViewById(R.id.ivImage);
    if (ad.getImages() != null && ad.getImages().size() > 0) {
        ivImage.setImageDrawable(ad.getImages().get(0).getDrawable());
        ivImage.setVisibility(View.VISIBLE);
    } else ivImage.setVisibility(View.GONE);
    adView.setImageView(ivImage);

    // Call the NativeAppInstallAdView's setNativeAd method to register the
    // NativeAd.
    adView.setNativeAd(ad);
}
 
Example 18
Project: admobadapter   File: ContentAdLayoutContext.java   View source code 4 votes vote down vote up
@Override
public void bind(NativeAdView nativeAdView, NativeAd nativeAd) throws ClassCastException{
    if (nativeAdView == null || nativeAd == null) return;
    if(!(nativeAd instanceof NativeContentAd) || !(nativeAdView instanceof NativeContentAdView))
        throw new ClassCastException();

    NativeContentAd ad = (NativeContentAd) nativeAd;
    NativeContentAdView adView = (NativeContentAdView) nativeAdView;

    // Locate the view that will hold the headline, set its text, and call the
    // NativeContentAdView's setHeadlineView method to register it.
    TextView tvHeader = (TextView) nativeAdView.findViewById(R.id.tvHeader);
    tvHeader.setText(ad.getHeadline());
    adView.setHeadlineView(tvHeader);

    TextView tvDescription = (TextView) nativeAdView.findViewById(R.id.tvDescription);
    tvDescription.setText(ad.getBody());
    adView.setBodyView(tvDescription);

    ImageView ivLogo = (ImageView) nativeAdView.findViewById(R.id.ivLogo);
    if(ad.getLogo()!=null)
        ivLogo.setImageDrawable(ad.getLogo().getDrawable());
    adView.setLogoView(ivLogo);

    Button btnAction = (Button) nativeAdView.findViewById(R.id.btnAction);
    btnAction.setText(ad.getCallToAction());
    adView.setCallToActionView(btnAction);

    TextView tvAdvertiser = (TextView) nativeAdView.findViewById(R.id.tvAdvertiser);
    tvAdvertiser.setText(ad.getAdvertiser());
    adView.setAdvertiserView(tvAdvertiser);

    ImageView ivImage = (ImageView) nativeAdView.findViewById(R.id.ivImage);
    if (ad.getImages() != null && ad.getImages().size() > 0) {
        ivImage.setImageDrawable(ad.getImages().get(0).getDrawable());
        ivImage.setVisibility(View.VISIBLE);
    } else ivImage.setVisibility(View.GONE);
    adView.setImageView(ivImage);

    // Call the NativeContentAdView's setNativeAd method to register the
    // NativeAdObject.
    nativeAdView.setNativeAd(nativeAd);
}
 
Example 19
Project: android-ads   File: MainActivity.java   View source code 4 votes vote down vote up
/**
 * Populates a {@link NativeContentAdView} object with data from a given
 * {@link NativeContentAd}.
 *
 * @param nativeContentAd the object containing the ad's assets
 * @param adView          the view to be populated
 */
private void populateContentAdView(NativeContentAd nativeContentAd,
                                   NativeContentAdView adView) {
    adView.setHeadlineView(adView.findViewById(R.id.contentad_headline));
    adView.setBodyView(adView.findViewById(R.id.contentad_body));
    adView.setCallToActionView(adView.findViewById(R.id.contentad_call_to_action));
    adView.setLogoView(adView.findViewById(R.id.contentad_logo));
    adView.setAdvertiserView(adView.findViewById(R.id.contentad_advertiser));

    // Some assets are guaranteed to be in every NativeContentAd.
    ((TextView) adView.getHeadlineView()).setText(nativeContentAd.getHeadline());
    ((TextView) adView.getBodyView()).setText(nativeContentAd.getBody());
    ((TextView) adView.getCallToActionView()).setText(nativeContentAd.getCallToAction());
    ((TextView) adView.getAdvertiserView()).setText(nativeContentAd.getAdvertiser());

    // Get the video controller for the ad. One will always be provided, even if the ad doesn't
    // have a video asset.
    VideoController vc = nativeContentAd.getVideoController();

    MediaView mediaView = adView.findViewById(R.id.contentad_media);
    ImageView mainImageView = adView.findViewById(R.id.contentad_image);

    // Apps can check the VideoController's hasVideoContent property to determine if the
    // NativeContentAd has a video asset.
    if (vc.hasVideoContent()) {
        mainImageView.setVisibility(View.GONE);
        adView.setMediaView(mediaView);

        mVideoStatus.setText(String.format(Locale.getDefault(),
                "Video status: Ad contains a %.2f:1 video asset.",
                vc.getAspectRatio()));

        // Create a new VideoLifecycleCallbacks object and pass it to the VideoController. The
        // VideoController will call methods on this object when events occur in the video
        // lifecycle.
        vc.setVideoLifecycleCallbacks(new VideoController.VideoLifecycleCallbacks() {
            public void onVideoEnd() {
                // Publishers should allow native ads to complete video playback before
                // refreshing or replacing them with another ad in the same UI location.
                mRefresh.setEnabled(true);
                mVideoStatus.setText("Video status: Video playback has ended.");
                super.onVideoEnd();
            }
        });
    } else {
        mediaView.setVisibility(View.GONE);
        adView.setImageView(mainImageView);

        // At least one image is guaranteed.
        List<NativeAd.Image> images = nativeContentAd.getImages();
        mainImageView.setImageDrawable(images.get(0).getDrawable());

        mRefresh.setEnabled(true);
        mVideoStatus.setText("Video status: Ad does not contain a video asset.");
    }

    // These assets aren't guaranteed to be in every NativeContentAd, so it's important to
    // check before trying to display them.
    NativeAd.Image logoImage = nativeContentAd.getLogo();

    if (logoImage == null) {
        adView.getLogoView().setVisibility(View.INVISIBLE);
    } else {
        ((ImageView) adView.getLogoView()).setImageDrawable(logoImage.getDrawable());
        adView.getLogoView().setVisibility(View.VISIBLE);
    }

    // Assign native ad object to the native view.
    adView.setNativeAd(nativeContentAd);
}
 
Example 20
Project: googleads-mobile-android-examples   File: MainActivity.java   View source code 4 votes vote down vote up
/**
 * Populates a {@link NativeContentAdView} object with data from a given
 * {@link NativeContentAd}.
 *
 * @param nativeContentAd the object containing the ad's assets
 * @param adView          the view to be populated
 */
private void populateContentAdView(NativeContentAd nativeContentAd,
                                   NativeContentAdView adView) {
    adView.setHeadlineView(adView.findViewById(R.id.contentad_headline));
    adView.setBodyView(adView.findViewById(R.id.contentad_body));
    adView.setCallToActionView(adView.findViewById(R.id.contentad_call_to_action));
    adView.setLogoView(adView.findViewById(R.id.contentad_logo));
    adView.setAdvertiserView(adView.findViewById(R.id.contentad_advertiser));

    // Some assets are guaranteed to be in every NativeContentAd.
    ((TextView) adView.getHeadlineView()).setText(nativeContentAd.getHeadline());
    ((TextView) adView.getBodyView()).setText(nativeContentAd.getBody());
    ((TextView) adView.getCallToActionView()).setText(nativeContentAd.getCallToAction());
    ((TextView) adView.getAdvertiserView()).setText(nativeContentAd.getAdvertiser());

    // Get the video controller for the ad. One will always be provided, even if the ad doesn't
    // have a video asset.
    VideoController vc = nativeContentAd.getVideoController();

    MediaView mediaView = adView.findViewById(R.id.contentad_media);
    ImageView mainImageView = adView.findViewById(R.id.contentad_image);

    // Apps can check the VideoController's hasVideoContent property to determine if the
    // NativeContentAd has a video asset.
    if (vc.hasVideoContent()) {
        mainImageView.setVisibility(View.GONE);
        adView.setMediaView(mediaView);

        mVideoStatus.setText(String.format(Locale.getDefault(),
                "Video status: Ad contains a %.2f:1 video asset.",
                vc.getAspectRatio()));

        // Create a new VideoLifecycleCallbacks object and pass it to the VideoController. The
        // VideoController will call methods on this object when events occur in the video
        // lifecycle.
        vc.setVideoLifecycleCallbacks(new VideoController.VideoLifecycleCallbacks() {
            public void onVideoEnd() {
                // Publishers should allow native ads to complete video playback before
                // refreshing or replacing them with another ad in the same UI location.
                mRefresh.setEnabled(true);
                mVideoStatus.setText("Video status: Video playback has ended.");
                super.onVideoEnd();
            }
        });
    } else {
        mediaView.setVisibility(View.GONE);
        adView.setImageView(mainImageView);

        // At least one image is guaranteed.
        List<NativeAd.Image> images = nativeContentAd.getImages();
        mainImageView.setImageDrawable(images.get(0).getDrawable());

        mRefresh.setEnabled(true);
        mVideoStatus.setText("Video status: Ad does not contain a video asset.");
    }

    // These assets aren't guaranteed to be in every NativeContentAd, so it's important to
    // check before trying to display them.
    NativeAd.Image logoImage = nativeContentAd.getLogo();

    if (logoImage == null) {
        adView.getLogoView().setVisibility(View.INVISIBLE);
    } else {
        ((ImageView) adView.getLogoView()).setImageDrawable(logoImage.getDrawable());
        adView.getLogoView().setVisibility(View.VISIBLE);
    }

    // Assign native ad object to the native view.
    adView.setNativeAd(nativeContentAd);
}
 
Example 21
Project: admobadapter   File: NativeAdLayoutContext.java   View source code votes vote down vote up
public abstract void bind(NativeAdView nativeAdView, NativeAd nativeAd);