Android Canvas.drawCircle() 是它应该大小的一半

标签 android canvas

我有一个带有以下绘图代码的自定义 View :

@Override
protected void onDraw(Canvas canvas)
{
    super.onDraw(canvas);

    canvas.drawColor(Color.BLACK);

    mPaint.setColor(Color.GREEN);
    canvas.drawRect(0, 0, 100, 100, mPaint);
    mPaint.setColor(Color.BLUE);
    canvas.drawCircle(100, 100, 100, mPaint);
}

这应该画一个正方形,然后是一个两倍于正方形大小的圆,以它的一个角为中心。相反,圆圈与正方形大小相同。

换句话说。它看起来应该像左边的图像,但实际上看起来像右边的图像。给了什么?

Correct rendering on left; actual rendering on right

最佳答案

好的,经过测试,这似乎是 GUI 布局编辑器中的一个错误。我假设这会与设备上的结果相匹配,因为它们实际上运行了代码……这是一个非常奇怪的错误,它只影响圆圈!

此外,它是一个比将值加倍更复杂的错误。有时 drawCircle() 会画一个椭圆!

无论如何它在设备上按预期工作。

关于Android Canvas.drawCircle() 是它应该大小的一半,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8916179/

相关文章:

android - 在 Android 中的 UI 线程操作期间显示 ProgressDialog

android - ACL_ACCESS_DENIED 感知 API - Android

html - 着色部分透明的图像/背景

jquery - 带有 html Canvas 的点图案

javascript - 流式传输 html5 Canvas 内容的有效方法?

javascript - 更改 rgraph 颜色而不重置图表

javascript - 如何制作 HTML5 Canvas "Press/Click to play"开始屏幕

java - 除以零,同时在 Android 的表格布局中动态添加列

android - 如何使用 gradle 为 3rd 方部门管理不同的支持库版本?

android - 中央按钮以编程方式和动态布局