1

我想在我的应用程序中按用户绘制圆圈。绘图非常简单 - 用户只需在画布上某处按下,然后预定义圆圈

这里的困难部分是用一些可绘制的(图片)作为填充来绘制它。当它是关于矩形时,这很简单。然后你只需要写:

   Drawable drawable = getResources().getDrawable(R.drawable.my_background_picture);
   drawable.setBounds(myRectangle);
   drawable.draw(myCanvas);

一切都是onDraw()按照我的自定义视图的方法完成的。

不幸的是,没有这么简单的方法来制作圆圈。我发现的一个是对Vogella 教程的轻微修改:

    InputStream resource = getResources().openRawResource(R.drawable.sand);
    Bitmap bitmap = BitmapFactory.decodeStream(resource);

    BitmapShader shader;
    shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP,Shader.TileMode.CLAMP);
    paint = new Paint();
    paint.setAntiAlias(true);
    paint.setShader(shader);

    myCanvas.drawRoundRect(myRectangle, 120, 120, paint);

乍一看还可以,其实不然。这个命令就像下面图片上的框架一样,所以你在图片上移动空心圆圈,仅此而已。与实际移动矩形位图的矩形不同。

所以,我的问题是 -有没有办法让圆形可绘制,也可以移动/调整大小?

4

1 回答 1

1

Why make a drawable? You can easily draw a circle via the canvas.drawCircle command. You can also easily make one via a Path object.

Edit:

If you need a drawable, try making a ShapeDrawable based off an OvalShape.

于 2013-08-13T06:29:28.217 回答