在预定义路径中写入文本

时间:2011-09-17 09:16:53

标签: android

我想沿着形状像大写Z字母的路径写文字。

我写了以下代码。它沿着矩形绘制文本 我需要做些什么才能创建一个Z形的路径并让文字跟随它?

protected void onCreate(Bundle savedInstanceState) 
      {
        super.onCreate(savedInstanceState);
        Display display = getWindowManager().getDefaultDisplay();
        setContentView(new SampleView(this,display.getWidth(),display.getHeight()));
      }

      private static class SampleView extends View 
      {
        int width;
        int height;
        public SampleView(Context context,int w,int h) 
        {
          super(context);
          width=w;
          height=h;
        }

        @Override
        protected void onDraw(Canvas canvas) 
        { 
            Path mypath = new Path();

            mypath.addRect(width/2,height/2,width,height,Path.Direction.CCW);

            // set the color and font size
            Paint paint = new Paint();
            paint.setColor(Color.RED);
            paint.setTextSize(30);
            paint.setAntiAlias(true);

            // draw the text along the circle
            canvas.drawTextOnPath("Hi This Is Sample String",mypath, 0, 30, paint);
        }
      }
    }

1 个答案:

答案 0 :(得分:2)

您必须使用画布对象。 使用FontMetrics,您可以计算文本周围的矩形,这有助于您在“路径”中更好地排列文本。

画布: http://developer.android.com/reference/android/graphics/Canvas.html

的FontMetrics: http://download.oracle.com/javase/1.4.2/docs/api/java/awt/FontMetrics.html