java如何在Android中通过画布绘制圆?
我想用帆布画圆圈。这是我的密码:
[MyActivity.java]:
public class MyActivity extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
...
setContentView(new View(this,w,h));
}
}
[View.java]:
public class View extends SurfaceView
{
public View(Context context, int w, int h)
{
super(context);
Canvas grid = new Canvas(Bitmap.createBitmap(h,w, Bitmap.Config.ARGB_8888));
grid. drawColor(Color.WHITE);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
grid.drawCircle(w/2, h/2 , w/2, paint);
}
}
所以我只有没有圆圈的黑屏。 为什么它不起作用?如何修复它
# 1 楼答案
如果您使用自己的CustomView扩展视图类,则需要调用canvas。invalidate()方法,该方法将在内部调用onDraw方法。可以使用画布的默认API绘制圆。x,y坐标定义圆的中心。您还可以在paint&;中定义颜色和样式;传递绘制对象
定义默认绘制设置和画布(在构造函数中初始化绘制,以便可以在任何地方重用同一对象,并在需要时仅更改特定设置)
并初始化画布对象
最后,对于屏幕上的每个视图刷新或新绘制,您需要调用invalidate方法。请记住,您的整个视图都已重新绘制,因此这是一个昂贵的调用。确保只在onDraw中执行必要的操作
有关画布绘图的更多详细信息,请参阅https://medium.com/@mayuri.k18/android-canvas-for-drawing-and-custom-views-e1a3e90d468b
# 2 楼答案
上面是渲染圆的代码。根据你的衣服调整参数
# 3 楼答案
Xml示例:将生成一个5dp的圆
# 4 楼答案
试试这个
绘制圆的完整代码或下载项目源代码并在android studio上进行测试Draw circle on canvas programmatically.
# 5 楼答案
可以替代视图的onDraw方法并绘制圆
有关绘制自定义视图的更好参考,请查看官方Android文档
http://developer.android.com/training/custom-views/custom-drawing.html
# 6 楼答案
编辑 若你们想在中心画一个圆。您也可以将整个画布平移到中心,然后在中心绘制圆。使用
这两个链接也有帮助
http://www.compiletimeerror.com/2013/09/introduction-to-2d-drawing-in-android.html#.VIg_A5SSy9o
http://android-coding.blogspot.com/2012/04/draw-circle-on-canvas-canvasdrawcirclet.html