5

プログラムで円または半円にテキストを追加したいのですが、線のエッジのある円ではなく、エッジが単語になるようにします。より良い説明については画像を参照してください。

テキストサークル

Androidでこれを行うにはどうすればよいですか、またはこの問題を解決するためにどのようなリソースを読むことができますか?

4

2 に答える 2

2

これを行うには、テキストをに描画する必要がありますCanvas。のサブクラスには、カスタムテキストの描画に使用できるViewが渡さCanvasれます。onDraw()このメソッドを使用すると、選択した任意のオブジェクトdrawTextOnPath()にテキストを配置できます。Path新しいインスタンスを作成し、を使用して、半円のパスを作成できますaddArc()

于 2012-12-01T04:47:06.780 に答える
1

以下のコードを使用できます。あなたのTextviewが欲しいようにそれを作ってください。ここで、背景画像として何かが必要な場合は、使用します setBackgroundResource(R.drawable.YOUR_IMAGE);

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

      static public class GraphicsView extends View {
         private static final String QUOTE = "text in a half-circle";
         private Path circle;
         private Paint cPaint;
         private Paint tPaint;

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

      int color = Color.argb(127, 255, 0, 255);

      circle = new Path();
      circle.addCircle(230, 350, 150, Direction.CW);

      cPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
      cPaint.setStyle(Paint.Style.STROKE);
      cPaint.setColor(Color.LTGRAY);
      cPaint.setStrokeWidth(3);

      // For Background Image
     setBackgroundResource(R.drawable.YOUR_IMAGE);

      tPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
      tPaint.setStyle(Paint.Style.FILL_AND_STROKE);
     //TextColor you want to set
      tPaint.setColor(Color.BLACK);
      //TextSize you want to set
      tPaint.setTextSize(50);}


      @Override
         protected void onDraw(Canvas canvas) {
         canvas.drawTextOnPath(QUOTE, circle, 485, 20, tPaint);} 
                                            } 
}

やってみて。それがあなたを助けることを願っています。

于 2012-12-01T05:30:50.453 に答える