2012-12-01 2 views
4

줄을 원으로 그리는 대신 가장자리를 단어로 사용하여 프로그래밍 방식으로 원이나 반원으로 텍스트를 추가하고 싶습니다. 더 자세한 설명은 이미지를 참조하십시오.어떻게 안드로이드에서 원형 패턴의 뷰에 텍스트를 그릴 수 있습니까?

text circle

어떻게 안드로이드에서이 작업을 수행 할 수 있습니다, 또는 나는이 문제를 좀 도와하기 위해 어떤 자원을 읽을 수 있을까?

+0

http://mindtherobot.com/blog/272/android-custom-ui-making-a-vintage-thermometer/ –

+0

[강력한 도구] (http://developer.android.com/) reference/android/graphics/Path.html) –

답변

2

이렇게하려면 Canvas에 텍스트를 그려야합니다. View의 하위 클래스는 Canvas (onDraw())이며 사용자 지정 텍스트를 그리는 데 사용할 수 있습니다. drawTextOnPath() 메서드를 사용하면 선택한 Path 객체에 텍스트를 넣을 수 있습니다. 새 인스턴스를 만들고 addArc()을 사용하여 반원형 경로를 만들 수 있습니다.

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);} 
              } 
} 

이 그것을 밖으로 시도 사용 backgroung에 이미지로 뭔가를 원하는 경우. 그것이 당신을 도울 수 있기를 바랍니다.

관련 문제