【问题标题】:How can I draw text to a view in a circular pattern in Android如何在Android中以圆形图案将文本绘制到视图中
【发布时间】:2012-12-01 04:40:32
【问题描述】:

我想以编程方式在圆形或半圆形中添加文本,以这样的方式,而不是使用带有线条边缘的圆形,边缘就是单词。查看图片以获得更好的解释。

我如何在 Android 中做到这一点,或者我可以阅读哪些资源来帮助我解决这个问题?

【问题讨论】:

标签: android textview android-custom-view


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以使用下面的代码。并按照您想要的 Textview 进行制作。 在这里,如果您想要Something 作为背景图片,请使用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);} 
                                                } 
    }
    

    试试看。希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多