Rah*_*pta 7 android android-edittext
我试图创建一个EditText这样的,每行之间的空间应该是20 dp.请看下面的图片.
如果我使用额外的行间距,则光标位置未与行正确对齐.我已经实现了行间距,但光标没有与行对齐.请参阅下图中突出显示的红色框.
package com.example.dev_task_197_keyboard_accesory;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.EditText;
public class LineEditText extends EditText {
private Rect mRect;
private Paint mPaint;
// we need this constructor for LayoutInflater
public LineEditText(Context context, AttributeSet attrs) {
super(context, attrs);
mRect = new Rect();
mPaint = new Paint();
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mPaint.setColor(Color.BLUE); //SET YOUR OWN COLOR HERE
setMinLines(15);
}
@Override
protected void onDraw(Canvas canvas) {
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);
for (int i = 0; i < count; i++) {
canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint);
baseline += getLineHeight();//next line
}
// Finishes up by calling the parent method
super.onDraw(canvas);
}
}
Run Code Online (Sandbox Code Playgroud)
对于行间距,添加lineSpaceExtra和lineSpaceMultiplier参数xml.
请建议.

| 归档时间: |
|
| 查看次数: |
2359 次 |
| 最近记录: |