我正在努力向画布添加文字。我需要做的是,当用户点击屏幕时,会在用户点击的位置生成编辑文本。用户输入文字以及完成编辑后文本,保存列表中的文本。我知道如何获得位置并添加编辑文本。编辑文本添加成功但不可编辑,并选择能够进一步编辑。
答案 0 :(得分:0)
如果目标只是在用户点击EditText
时添加View
,那么您无需手动绘图即可完成此操作。看一下这个例子(假设我们在你的活动中onCreate()
)
final RelativeLayout mainLayout = new RelativeLayout(this);
mainLayout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
setContentView(mainLayout);
mainLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() != MotionEvent.ACTION_DOWN) {
return false;
}
EditText editText = new EditText(YourActivity.this);
// Add whatever you want as size
int editTextHeight = 70;
int editTextWidth = 200;
LayoutParams params = new LayoutParams(editTextWidth, editTextHeight);
//You could adjust the position
params.topMargin = (int) (event.getRawY());
params.leftMargin = (int) (event.getRawX());
mainLayout.addView(editText, params);
editText.requestFocus();
return false;
}
});
答案 1 :(得分:-1)
是的,您可以在EditText
上绘制Canvas
,这是提示:
EditText et;
.
.
.
.
.
et.setDrawingCacheEnabled(true);
Bitmap b = et.getDrawingCache();
canvas.drawBitmap(bitmap, l, t, r, b, null);
您可以在运行时创建/初始化EditText
,如下所示:
EditText editText = new EditText(this);
editText.setText("My Text");
editText.setWidth(180);
editText.setBackgroundColor(Color.WHITE);