Android 代码画角标 offcutView

 

效果如下:

       image

  代码:

<com.andye.OffcutView
                android:layout_width="30dp"
                android:layout_height="30dp"/>
public class OffcutView extends View {
    private String Text ="";
//    private int textSize = 22;
    private int radius=6;

    public ChampionShipOffcutView(Context context) {
        super(context);
    }

    public ChampionShipOffcutView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public ChampionShipOffcutView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    @SuppressLint("DrawAllocation")
    protected void onDraw(Canvas canvas) {
        if(Text==null)
        {
            return;
        }
        int w = getWidth(), h = getHeight();
        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(Color.argb(255, 69, 112, 234));
        canvas.drawCircle(radius, radius, radius, paint);
        Path path = new Path();
        path.moveTo(radius, 0);
        path.lineTo( w, 0);
        path.lineTo(0, h);
        path.lineTo(0, radius);
        path.close();
        canvas.drawPath(path, paint);
        canvas.save();
        TextPaint textPaint = new TextPaint();
        textPaint.setColor(Color.argb(255, 255, 255, 255));
        textPaint.setAntiAlias(true);
        textPaint.setTextSize(w/4);
        float x,y;
        y=w*0.707f;
        y=(y*8)/10;
        x=(float) (-textPaint.measureText(Text))/2;
        canvas.rotate(-45);
        canvas.drawText(Text, x , y, textPaint);
        canvas.restore();
    }
    public void setText(String str) {
        Text = str==null?"":str;
        invalidate();
    }
    
}
原文地址:https://www.cnblogs.com/yejiurui/p/3822474.html