我必须在画布上绘制圆形,当直径长度改变时,其形状将不断变化。 (注意,根据意图数据修改直径长度)。我们可以显示相同形状的平滑过渡,如从较大尺寸到较小尺寸)
我当前的圈子代码如下所示(这是在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中时,它也不会渲染圆圈。
提前致谢。
答案 0 :(得分:1)
我宁愿使用SurfaceView而不是ImageView + Bitmap。可能的解决方案可能如下所示:
SurfaceHolder mHolder = mSurfaceView.getHolder();
Canvas canvas = mHolder.lockCanvas();
yourDrawCircleMethod(canvas);
canvas.unlockCanvasAndPost();
请注意,您还应该实现SurfaceHolder.Callback以获得有关SurfaceViews状态的通知。