1

我必须在画布上绘制圆形,其形状会随着直径长度的变化而不断变化。(注意,直径长度根据意图数据进行修改)。我们可以显示相同形状的平滑过渡,例如从大尺寸到小尺寸)

我当前的圈子代码如下所示,(这是在onCreate里面)

bitmap = Bitmap.createBitmap((int) getWindowManager()
            .getDefaultDisplay().getWidth(), (int) getWindowManager()
            .getDefaultDisplay().getHeight(), Bitmap.Config.ARGB_8888);
        canvas = new Canvas(bitmap);
        paint = new Paint();
        paint.setColor(Color.BLACK);
        paint.setStyle(Paint.Style.STROKE);

        drawingImageView.setImageBitmap(bitmap);
     // Draw Circle
        canvas.drawCircle(50, 50, 20, paint); // circle example

我正在使用 ImageView。如何动态更改同一个圆圈的大小。有如下接收器

registerReceiver( ) 
  onReceive(Context c,Intent i){
//   Based on data , modify the drawn Circle
}

OnReceive 将接收意图并根据数据,我们需要保持圆形形状的变化。当我将 drawCircle 代码放入 onReceive 时,它​​也不会渲染圆圈。

提前致谢。

4

1 回答 1

1

我宁愿使用 SurfaceView 而不是 ImageView + Bitmap。一个可能的解决方案可能如下所示:

SurfaceHolder mHolder = mSurfaceView.getHolder();

Canvas canvas = mHolder.lockCanvas();
yourDrawCircleMethod(canvas);
canvas.unlockCanvasAndPost();

请注意,您还应该实现 SurfaceHolder.Callback 以获取有关 SurfaceViews 状态的通知。

于 2013-01-10T22:47:22.540 回答