2012-09-13 2 views
2

나는이 링크에 참조 : How do I make a dotted/dashed line in Android?, DashPathEffect을 사용했습니다. 그러나 이것은 나를 위해 작동하지 않습니다? 왜? 내 코드 :android, edittext에서 점선을 그리는 방법

public class NoteEditText extends EditText { 
    private Paint mPaint; 

    public NoteEditText(Context context) { 
     super(context); 
    } 

    public NoteEditText(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     mPaint = new Paint(); 
     mPaint.setStrokeWidth(1); 
     mPaint.setStyle(Paint.Style.FILL_AND_STROKE); 
     mPaint.setColor(Color.DKGRAY); 
     PathEffect effects = new DashPathEffect(new float[]{5,5,5,5},1); 
     mPaint.setPathEffect(effects); 
    } 

    @Override 
    public void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 

     int height = this.getHeight(); 
     int lineHeight = this.getLineHeight(); 
     int lineNum = height/lineHeight; 
     L.l("line count: " + lineNum); 
     for (int i = 0; i < lineNum; i++) { 
      int y = (i + 1) * lineHeight; 
      canvas.drawLine(0, y, this.getWidth() - 1, y, mPaint); 
     } 
    } 
} 

답변

0

이렇게하면됩니다.

EditText editText = (EditText) v.findViewById (android.R.id.text1);

editText.setPaintFlags (editText.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

1
new float[]{5,5,5,5} 

난 당신이 아마 유용 line.set setStrokeWidth ($ 직경)을 그립니다 "루프"를 사용한다고 생각하지 않습니다

new float[]{5,10,15,20} 
0

보십시오. 이 함수를 지원하는 간단한보기를 작성했습니다. Here

관련 문제