2017-02-22 15 views
0

カーブしたテキストをカウンタークロックで描画したい。これまで私はカーブしていただけです。このコードではカーブしたテキストの代わりにクロックを描く時計の代わりにカウンタークロックを描く

public class TextDrawActivity extends AppCompatActivity { 
    @Override protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(new TextDrawingView(this)); 
    } 

    static class TextDrawingView extends View { 
    private Path arc; 
    private RectF bounds; 
    private TextPaint textPaint;  

    public TextDrawingView(Context context) { 
     super(context); 

     arc = new Path(); 
     bounds = new RectF(); 
     textPaint = new TextPaint(); 
     textPaint.setAntiAlias(true); 
     textPaint.setTextSize(50); 
     textPaint.setColor(Color.BLACK); 
    } 

    @Override public void draw(Canvas canvas) { 
     super.draw(canvas); 

     bounds.set(0f, 0f, getWidth() * 0.8f, getHeight()/2.f); 

     arc.rewind(); // Clear internal structure. 
     arc.addArc(bounds, 45, 360); 
     canvas.drawTextOnPath("Lorem ipsum dolor sit amet, consectetur adipisicing elit.", 
      arc, 0, textPaint.getTextSize()/2.f, textPaint); 
    } 
    } 
} 

、それは次のようになります:

Text

それはもう逆さまになりませんので、どのように私は賢明なテキストのカウンタクロックを描くことができますか?

+0

あなたは 'PATH' [反時計回り](https://developer.androidを初期化するためにtriend持っています。 com/reference/android/graphics/Path.Direction.html)? – azizbekian

+0

@azizbekian方向性のあるaddArcのオーバーロードはありません – Niklas

+0

[this](https://hemantvc.blogspot.de/2016/10/text-curve-clockwise-and-anticlockwise_95.html)が役立つと思います。 – azizbekian

答えて

1

pskinkはコメントで答えたように、負sweepAngleは、この効果を達成するために使用することができます。

@Override public void draw(final Canvas canvas) { 
    super.draw(canvas); 

    bounds.set(0f, 0f, getWidth() * 0.8f, getHeight()/2.f); 

    arc.rewind(); // Clear internal structure. 
    arc.addArc(bounds, 135, -180); 
    canvas.drawTextOnPath("Lorem ipsum dolor sit amet, consectetur adipisicing elit.", arc, 0, textPaint.getTextSize()/2.f, textPaint); 
} 
+0

あなたは'draw'メソッドの中で' arc.addArc'を呼び出して追加し、追加して追加します...あなたは何を意味するのでしょうか? – pskink

+0

それは醸造のためのものです。私の実際のコードでは、これは一度だけ行っているか、 'arc.rewind()'を使っています。私はそれを更新します。 – Niklas

+0

よろしくお願いします。 – pskink

関連する問題