Android实现消息提醒小红点效果实现消息提醒小红点效果
本人分享一下,自己写的一个消息提醒小红点控件,支持圆、矩形、椭圆、圆角矩形、正方形五种图形样式,可带文字,支持
链式操作。
先看一下实现效果,随便测了几个控件(TextView、ImageView、RadioButton、LinearLayout、RelativeLayout、
FrameLayout),不确定其他会不会有问题。
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TabWidget;
public class BadgeView extends View {
protected static final String LOG_TAG = "BadgeView";
// 该控件的背景图形类型
public static final int SHAPE_CIRCLE = 1;
public static final int SHAPE_RECTANGLE = 2;
public static final int SHAPE_OVAL = 3;
public static final int SHAPTE_ROUND_RECTANGLE = 4;
public static final int SHAPE_SQUARE = 5;
// 该框架内容的文本画笔
private Paint mTextPaint;
// 该控件的背景画笔
private Paint mBgPaint;
private int mHeight = 0;
private int mWidth = 0;
private int mBackgroundShape = SHAPE_CIRCLE;
private int mTextColor = Color.WHITE;
private int mTextSize;
private int mBgColor = Color.RED;
private String mText = "";
private int mGravity = Gravity.RIGHT | Gravity.TOP;
private RectF mRectF;
private float mtextH;