带圆角的六角形ImageView

时间:2018-05-20 09:15:03

标签: java android

我正在尝试用我发现的一些代码帮助制作带有圆角的六边形图像视图,并使用弧线绘制角。这种方法不起作用可能是因为我做错了。我希望有一种更简单的方法。
这是我的第一个弧形角的代码,但结果并不好。

private void calculatePath(float radius) {
    float halfRadius = radius / 2f;
    float triangleHeight = (float) (Math.sqrt(3.0) * halfRadius);
    float centerX = getMeasuredWidth() / 2f;
    float centerY = getMeasuredHeight() / 2f;

    this.hexagonPath.reset();
    this.hexagonPath.moveTo(centerX, centerY + radius);
    this.hexagonPath.lineTo(centerX - triangleHeight / 4f * 3f, centerY + radius / 8f * 5f);
    this.hexagonPath.arcTo(new RectF(centerX - triangleHeight, centerY + radius / 8f * 5f, centerX - triangleHeight / 4f * 3f, centerY + halfRadius / 2f), 30f, 180f);
    this.hexagonPath.lineTo(centerX - triangleHeight, centerY - halfRadius);
    this.hexagonPath.lineTo(centerX, centerY - radius);
    this.hexagonPath.lineTo(centerX + triangleHeight, centerY - halfRadius);
    this.hexagonPath.lineTo(centerX + triangleHeight, centerY + halfRadius);
    this.hexagonPath.close();

    invalidate();
}

这是结果,因为你可以看到没有任何弧:

请帮助我找到解决方案或更简单的方法。

另外请不要链接我的图书馆,我想自己为我的应用做这个。

抱歉我的英语,而不是我的主要语言。

0 个答案:

没有答案