2012-12-01 24 views
4

我想以编程方式在圆圈或半圆中添加文字,而不是使用具有线边缘的圆圈,边缘是文字。查看图片以获得更好的解释。如何在Android中以圆形图案的方式绘制文字到视图

text circle

我怎样才能做到这在Android中,我也可以为了帮我解决这个问题读什么资源?

+0

它会帮助你http://mobile.android.com/blog/272/android-custom-ui-making-a-vintage-thermometer/ –

+0

[一个强大的工具](http://developer.android.com/参考/机器人/图形/ Path.html) –

回答

2

为了做到这一点,您需要将文字绘制到Canvas上。 View的任何子类都会通过Canvas,onDraw(),您可以使用它来绘制自定义文本。方法drawTextOnPath()可让您将文字放在您选择的任何Path对象上。您可以通过创建新实例并使用addArc()来创建半圆路径。

1

你可以使用下面的代码。并使其成为你想要的Textview。 在这里,如果你想要的东西作为Backgroung图像,然后使用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);} 
              } 
} 

尝试一下。希望它能帮助你。

相关问题