0

私はこれに少し困惑していたので、誰かが何か指針を持っているかどうかを確認するためにここに尋ねると思いました.

一言で言えば、複数の複雑な形状をキャンバスに描画し、それを画面に描画するアプリがあります (この質問の回答で提案されているように、大きなキャンバスの周りにパンを実装します: Android: Drawingとキャンバス上で回転)

カスタムシェイプを作成して、Android のキャンバス上の任意の位置/回転で描画するにはどうすればよいですか?

以下は、これまでに実装しようとした単純なカスタム形状の例です (通常、実行時に作成されます)。

public class Symbol {
    public Bitmap b = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888);
    public Symbol() {
        Canvas canvas = new Canvas(b);;
        Paint paint = new Paint();
        paint.setColor(Color.GRAY);
        paint.setStyle(Paint.Style.STROKE);
        paint.setTextSize(25);
        paint.setStrokeWidth(4);
        paint.setDither(true);                    
        paint.setStrokeJoin(Paint.Join.ROUND);    
        paint.setStrokeCap(Paint.Cap.ROUND);      
        paint.setAntiAlias(true);  
        String str="TestStr";
        canvas.drawText(str, 250,250, paint);
    }
}
4

1 に答える 1

0

うわー、私はこれにハードコアをぶつけました。

Android: canvas.drawBitmap のパフォーマンスの問題

これを私のメインクラスに追加すると、少なくともこの単純なケースに関する限り、すべてがうまくいきました。

Symbol s = new Symbol();
canvas.save();
canvas.rotate(5);
canvas.drawBitmap(s.b, 0,0, null);
canvas.restore();
于 2012-12-20T21:17:59.913 に答える