0

ネットワークからサンプル (float 配列) を受け取り、SurfaceView で曲線として描画します。サンプルは定期的に更新されるため、曲線は動的です。私のプログラムでは、次のように、曲線が描画されるビットマップを作成します。

Bitmap bmp = Bitmap.createBitmap(width, height, Config.ARGB_4444);
Canvas canvas = new Canvas(bmp);
drawCurve(canvas);

void drawCurve(Canvas canvas, float[] buffer) {
      ...
      canvas.drawLine(x1, buffer[i], x2, buffer[i+1], paint);
      ...
}

...

private class RenderThread extends Thread {
    public void run() {
        c = mHolder.lockCanvas(null);
        c.drawBitmap(bmp, 0, 0, null);
        mHolder.unlockCanvasAndPost(c);
        ...
    }
}

曲線をサポートしたいのですが、ズームインとズームアウトが可能です。曲線を効果的に描画するには、drawCurveメソッドは新しいサンプルを更新するだけです。つまり、古い領域を消去し、その領域に新しいサンプルを描画します。どのようにできるのか?ありがとう!

4

1 に答える 1

0

それはあなたを助けるかもしれません...........から:http ://android-er.blogspot.in/2010/07/skew-bitmap-image-using-matrix.html

drawMatrix関数を参照してください:

   matrix.postScale(curScale, curScale);
   matrix.postRotate(curRotate);
   matrix.postSkew(curSkewX, curSkewY);

   Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bmpWidth, bmpHeight, matrix, true);
于 2012-05-11T11:13:14.330 に答える