image.png
上代碼
package com.nick.customview;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.support.annotation.Nullable;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;
public class SimpleRectangle extends AppCompatImageView {
public SimpleRectangle(Context context) {
super(context);
}
public SimpleRectangle(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public SimpleRectangle(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void draw(Canvas canvas) {
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.STROKE);
paint.setAlpha(250);
paint.setStrokeWidth(10.0f);
paint.setStrokeCap(Paint.Cap.ROUND);
RectF rectF = new RectF(80, 80, getWidth()- 80, getHeight()- 80);
canvas.drawRoundRect(rectF, 30, 30, paint);
canvas.drawLine(80, getHeight()/2, getWidth()- 80, getHeight()/2, paint);
canvas.drawLine(getWidth()/2, 80, getWidth()/2, getHeight()- 80, paint);
super.draw(canvas);
}
}
一開始遇到的問題是怎么讓邊框的角變成圓角苹粟,后來查到添加paint的一個(gè)屬性就可以做到鸣奔∫看developers怎么介紹這個(gè)牛逼的屬性的:
paint.setStrokeCap(Paint.Cap.ROUND);
image.png
當(dāng)畫筆paint的樣式是描邊或這描邊填充時(shí)使用Cap參數(shù)來設(shè)置線頭的樣式来破。