Android 编辑文本画错了线
我想做一个笔记编辑。它将有一个带行的Android 编辑文本画错了线,android,android-edittext,Android,Android Edittext,我想做一个笔记编辑。它将有一个带行的EditText。这是我的密码: LinedEditText.java public class LinedEditText extends EditText { private Rect mRect; private Paint mPaint; public LinedEditText(Context context) { super(context); // TODO Auto-generat
EditText
。这是我的密码:
LinedEditText.java
public class LinedEditText extends EditText {
private Rect mRect;
private Paint mPaint;
public LinedEditText(Context context) {
super(context);
// TODO Auto-generated constructor stub
mRect = new Rect();
mPaint = new Paint();
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mPaint.setColor(Color.BLUE); //SET YOUR OWN COLOR HERE
}
@Override
protected void onDraw(Canvas canvas) {
//int count = getLineCount();
int height = getHeight();
int line_height = getLineHeight();
int count = height / line_height;
if (getLineCount() > count)
count = getLineCount();
Rect r = mRect;
Paint paint = mPaint;
int baseline = getLineBounds(0, r);//first line
for (int i = 0; i < count; i++) {
canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint);
baseline += getLineHeight();//next line
}
super.onDraw(canvas);
}
结果:
我犯了什么错误
谢谢…正在从向下的光标位置绘制直线。只需使用重力将光标的默认位置从垂直居中移动到左上角:
text.setGravity(Gravity.NO_GRAVITY);
或者默认情况下为所有LinedItems设置:
public LinedEditTexts(Context context) {
super(context);
setGravity(Gravity.NO_GRAVITY); // or Gravity.TOP | Gravity.LEFT
...
}
对不起,我不能早点测试。谢谢
public LinedEditTexts(Context context) {
super(context);
setGravity(Gravity.NO_GRAVITY); // or Gravity.TOP | Gravity.LEFT
...
}