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();
    }
    
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM