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

私はイメージビューを使用しています。同じ円のサイズを動的に変更するにはどうすればよいですか。以下のような受信機があります

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

OnReceive はインテントを受け取り、データに基づいて、円の形状を変更し続ける必要があります。onReceive 内に drawCircle コードを配置すると、円もレンダリングされません。

前もって感謝します。

4

1 に答える 1

1

ImageView + Bitmap の代わりに SurfaceView を使用したいと思います。可能な解決策は次のようになります。

SurfaceHolder mHolder = mSurfaceView.getHolder();

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

SurfaceViews の状態に関する通知を受け取るには、SurfaceHolder.Callback も実装する必要があることに注意してください。

于 2013-01-10T22:47:22.540 に答える