Android Open Source - appboy-android-sdk Banner Image Card View

From Project

Back to project page appboy-android-sdk.


The source code is released under:

Copyright (c) 2014 Appboy, Inc. All rights reserved. * Use of source code or binaries contained within Appboy's Android SDK is permitted only to enable use of the Appboy platform by customers of Appb...

If you think the Android project appboy-android-sdk listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.appboy.ui.widget;
//w  ww.jav  a  2 s.  c  o  m
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import com.appboy.Appboy;
import com.appboy.Constants;
import com.appboy.ui.R;
import com.appboy.ui.actions.ActionFactory;
import com.appboy.ui.actions.IAction;

public class BannerImageCardView  extends BaseCardView<BannerImageCard> {
  private final ImageView mImage;
  private IAction mCardAction;
  private static final String TAG = String.format("%s.%s", Constants.APPBOY, BannerImageCardView.class.getName());

  // We set this card's aspect ratio here as a first guess. If the server doesn't send down an
  // aspect ratio, then this value will be the aspect ratio of the card on render.
  private float mAspectRatio = 6f;

  public BannerImageCardView(Context context) {
    this(context, null);

  public BannerImageCardView(final Context context, BannerImageCard card) {
    mImage = (ImageView) findViewById(;

    if (card != null) {


  protected int getLayoutResource() {
    return R.layout.com_appboy_banner_image_card;

  public void onSetCard(final BannerImageCard card) {
    boolean respectAspectRatio = false;
    if (card.getAspectRatio() != 0f){
      mAspectRatio = card.getAspectRatio();
      respectAspectRatio = true;
    setImageViewToUrl(mImage, card.getImageUrl(), mAspectRatio, respectAspectRatio);
    mCardAction = ActionFactory.createUriAction(getContext(), card.getUrl());

    setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // We don't set isRead here (like we do in other card views)
        // because Banner Cards don't have read/unread indicators.  They are all images, so there's
        // no free space to put the indicator.
        if (mCardAction != null) {
          Log.d(TAG, String.format("Logged click for card %s", card.getId()));

Java Source Code List