2012-09-13 67 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} 

嘗試

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

我不認爲你應該使用 「for循環」 畫line.set setStrokeWidth($直徑)可能是有用的。我寫了一個支持此功能的簡單視圖,詳細信息Here