BGABadgeView-Android

The demo shows:

  • The latest message number of weibo at the bottom tab
  • The VIP badge located in lower-right Corner of User’s Photo in the weibo user list
  • The new message in the weixin message page
  • The subscribe message in the weixin message page
  • User’s round corner photo made by RoundedBitmapDrawable from v4 package
  • Delete badge by drag and drop

The realization of explosion effect refers to ExplosionField with the modify of only retaining one View,and only refresh the field around of badge

Screenshots

BGABadgeView

Gradle Dependencies

Download

dependencies {
    implementation 'cn.bingoogolapple:bga-badgeview-api:latestVersion'
    annotationProcessor "cn.bingoogolapple:bga-badgeview-compiler:latestVersion"
}

Initialize BGABadge

Add BGABadge annotation to any class, such as newly created class BGABadgeInit

@BGABadge({
        View.class, // ===> cn.bingoogolapple.badgeview.BGABadgeView,If you do not need, please delete this line
        ImageView.class, // ===> cn.bingoogolapple.badgeview.BGABadgeImageView,If you do not need, please delete this line
        TextView.class, // ===> cn.bingoogolapple.badgeview.BGABadgeFloatingTextView,If you do not need, please delete this line
        RadioButton.class, // ===> cn.bingoogolapple.badgeview.BGABadgeRadioButton,If you do not need, please delete this line
        LinearLayout.class, // ===> cn.bingoogolapple.badgeview.BGABadgeLinearLayout,If you do not need, please delete this line
        RelativeLayout.class, // ===> cn.bingoogolapple.badgeview.BGABadgeRelativeLayout,If you do not need, please delete this line
        FloatingActionButton.class, // ===> cn.bingoogolapple.badgeview.BGABadgeFloatingActionButton,If you do not need, please delete this line
        ...
        ...
        ...
})
public class BGABadgeInit {
}

Supported badge style for now

Class name usage scenario
BGABadgeRadioButton Bottom navigation of weibo home page
BGABadgeImageView User’s photo of weibo user list
BGABadgeTextView You can alternatively use BGABadgeCheckedTextView
BGABadgeLinearLayout Message number in the right of item in the list
BGABadgeRelativeLayout Message number in the right of item in the list
BGABadgeFrameLayout Message number in the right of item in the list

Interface/api explain

/**
 * show circle badge
 */
void showCirclePointBadge();

/**
 * show text badge
 *
 * @param badgeText
 */
void showTextBadge(String badgeText);

/**
 * hide badge
 */
void hiddenBadge();

/**
 * show image badge
 *
 * @param bitmap
 */
void showDrawableBadge(Bitmap bitmap);

/**
 * set the delegate to delete the badge by drag and drop
 *
 * @param delegate
 */
void setDragDismissDelegage(BGADragDismissDelegate delegate);

/**
 * Whether show the badge or not
 *
 * @return
 */
boolean isShowBadge();

/**
 * Can it be dragged
 *
 * @return
 */
boolean isDraggable();

/**
 * Whether being dragged
 *
 * @return
 */
boolean isDragging();

The customed attribution

The customed attribution Explain Default value
badge_bgColor Badge background Color.RED
badge_textColor Text color of badge Color.WHITE
badge_textSize Text font size of badge 10sp
badge_verticalMargin The distance in pixels from the top edge of badge’s background to the top edge of the host or from the bottom edge of badge’s bottom to the host’s bottom 4dp
badge_horizontalMargin The distance in pixels from the edge of badge’s background to the left or right edge of the host 4dp
badge_padding Badge’s padding 4dp
badge_gravity Badge’s gravity, it’s layout direction For BGABadgeImageView and BGABadgeRadioButton, upper right.For others, the default is the right side of the vertical center
badge_draggable The badge can be drag or not false
badge_isResumeTravel When the badge is dragged out of path, if it can resume the path in case of put back false
badge_borderWidth Border width of badge 0dp
badge_borderColor Border color of badge Color.WHITE
badge_dragExtra Extra distance of trigger drag event 4dp

GitHub