2012-01-24 6 views
0

cantは、開始位置がどこかランダムではないようにテキストを回転する方法を理解していません。 (アニメーション化したくない)私はちょうど開始位置を指定したい。円のパスでdrawTextOnPathによって作成されたテキストをどのように回転させることができますか?

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(new GraphicsView(this)); 
} 

private static class GraphicsView extends View { 
    private static final String QUOTE = "Nobody uses Java anymore. It's this big heavyweight ball and chain."; 
    Path circle; 
    Paint tPaint; 

    public GraphicsView(Context context) { 
     super(context); 
     tPaint = new Paint(); 
     tPaint.setColor(Color.BLUE); 
     tPaint.setTextSize(30); 
     tPaint.setAntiAlias(true); 
     //setBackgroundResource(R.drawable.background); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     circle = new Path(); 
     int centerX = getWidth()/2; 
     int centerY = getHeight()/2; 
     circle.addCircle(centerX, centerY, Math.min(centerX, centerY), Direction.CW); 
     canvas.drawTextOnPath(QUOTE, circle, 0, 30, tPaint); 
    } 
} 

答えて

1

あなたはdocumentationに応じhOffset -parameterを変更しようとしたことがありますか?

HOFFSET円の周りに変位が2 * PIラジアンである円周に基づいているテキストの開始 位置に

+0

私はHOFFSET、それが働いたこと、それが見えた最初のを変更しようとしたんでしたが、uはその一例urselfをしようとした場合uが表示されますそのHOFFSET = 700であるならば、私は、テキストを開始する位置、の終わりテキストが欠落しています。 – BlastFire

+0

ありがとうございます。それは私のために働いた... – Dharmendra

4

を追加する経路に沿った距離。 半角(180)は1 * Math.PI * radiusで、先頭(12時)から1.5 * Math.PI * radiusです。 hOffsetは正でなければなりません。

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    circle = new Path(); 
    int centerX = getWidth()/2; 
    int centerY = getHeight()/2; 
    int radius = Math.min(centerX,centerY); 
    circle.addCircle(centerX, centerY, Math.min(centerX, centerY), Direction.CW); 
    canvas.drawTextOnPath(QUOTE, circle, 1.5f*Math.PI*radius, 30, tPaint); 
} 
+0

偉大な答え:) – Sulby

関連する問題