2012-02-13 1 views
4

캔버스에 세로 텍스트를 그리는 방법을 배우고 싶습니다. 아마 어리석은 질문에 대한 미안하지만,이 문제를 해결할 수 없습니다. 내가 그렇게 할 수 있습니다 : 나는의 경우 어디로 데려 갔는지캔버스에 세로로 텍스트 그리기

if (i ==10) 
     { 
      this_str2 = "0.00"; 
     } 


       canvas.save(); 
       canvas.rotate(-90,190,90); 
       canvas.drawText(this_str2, x_guide +50, drawSizes[1] + drawSizes[3] - (i * drawSizes[3]/10) +20, paint); 
       canvas.restore(); 
     } 

를하지만 제대로 X에 표시되지 않고 Y이 문제 7

답변

4

이 사용자 정의 텍스트 뷰 시도하는 다른 솔루션입니다, 나는 기억하지 않는다 (여기 StackOverflow에서), 기억하는 사람이 있으면 주석에 링크를 게시하십시오.

import android.content.Context; 
import android.graphics.Canvas; 
import android.text.TextPaint; 
import android.util.AttributeSet; 
import android.view.Gravity; 
import android.widget.TextView; 

public class VerticalTextView extends TextView 
{ 
    final boolean topDown; 

    public VerticalTextView(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     final int gravity = getGravity(); 
     if (Gravity.isVertical(gravity) && (gravity & Gravity.VERTICAL_GRAVITY_MASK) == Gravity.BOTTOM) 
     { 
      setGravity((gravity & Gravity.HORIZONTAL_GRAVITY_MASK) | Gravity.TOP); 
      topDown = false; 
     } 
     else 
      topDown = true; 
    } 

    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 
    { 
     super.onMeasure(heightMeasureSpec, widthMeasureSpec); 
     setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth()); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) 
    { 
     TextPaint textPaint = getPaint(); 
     textPaint.setColor(getCurrentTextColor()); 
     textPaint.drawableState = getDrawableState(); 

     canvas.save(); 

     if (topDown) 
     { 
      canvas.translate(getWidth(), 0); 
      canvas.rotate(90); 
     } 
     else 
     { 
      canvas.translate(0, getHeight()); 
      canvas.rotate(-90); 
     } 

     canvas.translate(getCompoundPaddingLeft(), getExtendedPaddingTop()); 

     getLayout().draw(canvas); 
     canvas.restore(); 
    } 
} 
+1

http://blog.stylingandroid.com/archives/796 –