如何在android中动态地调整/调整圆形的形状?

时间:2013-01-10 21:50:06

标签: android

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

我当前的圈子代码如下所示(这是在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中时,它也不会渲染圆圈。

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

SurfaceHolder mHolder = mSurfaceView.getHolder();

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

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