【问题标题】:Draw a circle within circle at a distance of 10在距离为 10 的圆内画一个圆
【发布时间】:2014-01-29 14:06:35
【问题描述】:

我最近开始使用 Android,我需要在 Circle 内画一个 Circle,就像下图一样,距离 10而且我不需要照片上当前存在的任何图标。只是具有两个直径的圆中的圆。

我只想画圆圈和两个直径,而不是圆圈上的图标。任何建议将不胜感激。

更新:-

我写了下面的代码,但它只画了一个圆圈。我需要像上图那样画-

public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(demoview);
        }

        private class DemoView extends View{
            public DemoView(Context context){
                super(context);
            }

            @Override
            protected void onDraw(Canvas canvas) {
                super.onDraw(canvas);
                Paint p = new Paint();
                p.setColor(Color.RED);
                DashPathEffect dashPath = new DashPathEffect(new float[]{5,5}, (float)1.0);

                p.setPathEffect(dashPath);
                p.setStyle(Style.STROKE);
                canvas.drawCircle(100, 100, 50, p);

                invalidate();
            }
        }
}

【问题讨论】:

  • 循环你所做的,每次都增加直径。
  • 我所做的是,我只创建了一个圆圈,并且我无法像在 Java 中使用 Canvas 那样复制上面的图像。

标签: java android android-canvas


【解决方案1】:

试试:

protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            Paint p = new Paint();
            p.setColor(Color.RED);
            DashPathEffect dashPath = new DashPathEffect(new float[]{5,5}, (float)1.0);

            p.setPathEffect(dashPath);
            p.setStyle(Style.STROKE);


            for (int i = 0; i < 7; i ++) {
                canvas.drawCircle(100, 100, 50+(i*10), p);
            }


            invalidate();
        }

【讨论】:

  • 感谢 AW101 的建议。尝试这个之后,我只得到圆圈内的圆圈,但是我怎样才能得到两个直径并在中间留出一些空间,这样如果我需要把图片放在中间,那么我可以随时把它放在必需的。任何帮助将不胜感激。
  • 两个直径的圆是什么意思?你是指水平线和垂直线吗?如果是这样,请尝试 canvas.drawLine。见:developer.android.com/reference/android/graphics/Canvas.html
猜你喜欢
  • 1970-01-01
  • 2012-11-12
  • 2013-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-13
相关资源
最近更新 更多