1
嗨,我需要繪製六邊形邊框。我試着使用下面的代碼,但我面臨的問題是顏色填滿了Hexagon。我只需要給Hexagon的邊框添加顏色。誰能幫幫我嗎?如何顯示六角形邊框
public class HexagonLayout extends RelativeLayout {
public HexagonLayout(Context context) {
super(context);
}
public HexagonLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
@SuppressLint("NewApi")
public HexagonLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
Path clipPath = new Path();
clipPath.addPath(Hexagon());
//canvas.clipPath(clipPath);
Paint mPaint=new Paint();
mPaint.setColor(Color.BLUE);
mPaint.setAntiAlias(true);
canvas.drawPath(Hexagon(), mPaint);
super.onDraw(canvas);
}
private Path Hexagon() {
float midx = 100;
float midy = 200;
Path p = new Path();
p.moveTo(midx, midy);
p.lineTo(midx+150, midy + 220);
p.lineTo(midx, midy + 220);
p.lineTo(midx-150, midy + 220);
p.lineTo(midx-300, midy);
p.lineTo(midx-150, midy-220);
p.lineTo(midx+150, midy-220);
p.lineTo(midx+300, midy);
p.lineTo(midx+150, midy + 220);
return p;
}
}