如何在Android中绘制半圆形
问题原因:用户想要在Android中画一个半圆,但是他们不知道如何实现。
解决方法:用户可以使用
参考链接:http://developer.android.com/guide/topics/resources/drawable-resource.html#Clip
但是,这个答案并不完整。答案应该能够独立存在,并且只使用链接作为支持。问题在于当Android移动这个URL时,这个答案将无法工作。用户不得不去其他地方了解clip标记是什么。
我的链接并没有提供任何可以直接使用的教程,你必须自己阅读和理解文档。将其复制到答案本身是没有意义的,因为这样可能会导致其过时。
我只是指出了Stack Overflow的准则。如果你不同意这些规则,请与Stack Overflow联系。
参考链接:http://stackoverflow.com/help/how-to-answer
问题的原因是希望在Android中绘制一个半圆形,但不知道具体的实现方法。以下是解决这个问题的步骤:
第一步,创建一个自定义的View类,命名为MyView,并添加以下代码:
public class MyView extends View { public MyView(Context context) { super(context); } protected void onDraw(Canvas canvas) { super.onDraw(canvas); float width = (float) getWidth(); float height = (float) getHeight(); float radius; if (width > height) { radius = height / 4; } else { radius = width / 4; } Path path = new Path(); path.addCircle(width / 2, height / 2, radius, Path.Direction.CW); Paint paint = new Paint(); paint.setColor(Color.BLACK); paint.setStrokeWidth(5); paint.setStyle(Paint.Style.FILL); float center_x, center_y; final RectF oval = new RectF(); paint.setStyle(Paint.Style.STROKE); center_x = width / 2; center_y = height / 2; oval.set(center_x - radius, center_y - radius, center_x + radius, center_y + radius); canvas.drawArc(oval, 90, 180, false, paint); } }
第二步,在你的Activity或Fragment中初始化这个自定义的View类,代码如下:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyView(this)); }
这样就可以在你的Android应用中绘制一个半圆形了。
如果想要在弧线的一侧添加一个半圆形的帽子,可以通过在Path对象中添加线段的方式实现。具体的代码如下:
Path path = new Path(); path.moveTo(center_x - radius, center_y); path.lineTo(center_x + radius, center_y); path.arcTo(oval, 180, 180); canvas.drawPath(path, paint);
这样就可以在弧线的一侧添加一个半圆形的帽子了。
最后,有人评论说添加Path对象是不必要的,可以省略。