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;
//www.java2s.comimport 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.models.cards.BannerImageCard;
import com.appboy.ui.R;
import com.appboy.ui.actions.ActionFactory;
import com.appboy.ui.actions.IAction;
publicclass BannerImageCardView extends BaseCardView<BannerImageCard> {
privatefinal ImageView mImage;
private IAction mCardAction;
privatestaticfinal 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.
privatefloat mAspectRatio = 6f;
public BannerImageCardView(Context context) {
this(context, null);
}
public BannerImageCardView(final Context context, BannerImageCard card) {
super(context);
mImage = (ImageView) findViewById(R.id.com_appboy_banner_image_card_image);
if (card != null) {
setCard(card);
}
safeSetBackground(getResources().getDrawable(R.drawable.com_appboy_card_background));
}
@Override
protectedint getLayoutResource() {
return R.layout.com_appboy_banner_image_card;
}
@Override
publicvoid 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() {
@Override
publicvoid 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()));
card.logClick();
mCardAction.execute(mContext);
}
}
});
}
}