我正在使用 anEditText
来支持粗体、斜体和下划线的属性。选择文本并单击按钮以加粗文本后,我成功了。
现在我想在选择文本并单击粗体按钮后再次删除粗体。
它只是没有将标志设置为粗体并删除粗体。我必须知道我们选择的文本是粗体的,如果它是粗体,那么我们必须通过单击相同的按钮来删除粗体。需要这个文本编辑器从 2.3 版开始支持。
任何帮助将不胜感激。谢谢:)
我正在使用 anEditText
来支持粗体、斜体和下划线的属性。选择文本并单击按钮以加粗文本后,我成功了。
现在我想在选择文本并单击粗体按钮后再次删除粗体。
它只是没有将标志设置为粗体并删除粗体。我必须知道我们选择的文本是粗体的,如果它是粗体,那么我们必须通过单击相同的按钮来删除粗体。需要这个文本编辑器从 2.3 版开始支持。
任何帮助将不胜感激。谢谢:)
下面的代码为理解如何扩展 EditText 类提供了一个起点。这段代码的作用是在每行单词下画一条线。但是,这不提供 rtf。
public class LinedEditText extends EditText {
private Rect mRect;
private Paint mPaint;
// we need this constructor for LayoutInflater
public LinedEditText(Context context, AttributeSet attrs) {
super(context, attrs);
mRect = new Rect();
mPaint = new Paint();
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
// set your own color here, referencing color resource file
int color = ContextCompat.getColor(context, R.color.edit_note_line);
mPaint.setColor(color);
}
@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();//for long text with scrolling
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);
}
}