我的代码在这里
textPaint.setStyle(Paint.Style.FILL);
textPaint.setTextAlign(Paint.Align.CENTER);
canvas.drawText(substring, textX, y, this.textPaint);
我想在这里添加游标,如edittext
答案 0 :(得分:0)
不,据我所知,这是不可能的,因为文本是位图的一部分,而不是由文本标记界面解释为文本。
我建议另一个解决方案:
使用像这样的封装布局结构(布局只是简单!)
pong = new Pong()
您可以通过调用 setX 或 setY 功能将textview定位在framelayout中。然后,只要在画布之后定义textview,就会始终在画布上绘制textview。此外,您可以通过调用函数 setVisibility
除此之外,您还可以使用代码动态地向framelayout添加更多Textview,而不是在布局xml中静态定义textview
答案 1 :(得分:0)
你可以这样画出闪烁的光标:
private long lastCursorChangeState = -1;
private boolean cursorVisible = true;
private Rect textBounds = new Rect();
@Override
protected void onDraw(Canvas canvas) {
if(isWriting){
if(System.currentTimeMillis() - lastCursorChangeState > 500) {
cursorVisible = !cursorVisible;
lastCursorChangeState = System.currentTimeMillis();
}
if(cursorVisible){
paint.getTextBounds(textToDraw, 0, textToDraw.length(), textBounds);
canvas.drawLine(textX+textBounds.right, textY-textSize, textX+textBounds.right, textY, paint);
}
postInvalidateDelayed(500);
}
}