gpt4 book ai didi

java - 无法在 Canvas 上绘制 EditText

转载 作者:太空宇宙 更新时间:2023-11-04 12:05:08 26 4
gpt4 key购买 nike

我正在尝试在位图上写入文本,我需要一个 edittex 来检查来自键盘的输入。我找到了在 Canvas 上绘制 EditText 的代码,但它返回 null:

Attempt to invoke virtual method 'void android.widget.EditText.setDrawingCacheEnabled(boolean)' on a null object reference
<小时/>

编辑:全类

<小时/>
public class TextMenu {
private final Toolbox toolbox;
private final AppPanel appPanel;
private final Context context;
private final MainActivity mainActivity;
private final Resources resources;
private Bitmap textTool, Click, textPlace;
private final float xscaleFactor, yscaleFactor;
private boolean allowDraw;
private EditText editText;

public TextMenu(Context context, Resources resources, float xscaleFactor, float yscaleFactor, Toolbox toolbox, AppPanel appPanel, MainActivity mainActivity) {
this.xscaleFactor = xscaleFactor;
this.yscaleFactor = yscaleFactor;
this.resources = resources;
this.toolbox = toolbox;
this.appPanel = appPanel;
this.context = context;
this.mainActivity = mainActivity;

textPlace = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(resources, R.drawable.text_place), (int) (xscaleFactor * 93), (int) (yscaleFactor * 193), true);
textTool = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(resources, R.drawable.text_menu), (int) (xscaleFactor * 480), (int) (yscaleFactor * 100), true);
Click = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(resources, R.drawable.tools_click), (int) (xscaleFactor * 80), (int) (yscaleFactor * 80), true);

editText = new EditText(context);
editText.setText("My Text");
editText.setWidth(180);
editText.setBackgroundColor(Color.WHITE);

}

public void draw(Canvas canvas) {
if (allowDraw) {
canvas.drawBitmap(textTool, 0, screenH - textTool.getHeight(), null);
command(canvas);
editText.setDrawingCacheEnabled(true);
// editText.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
// View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
editText.buildDrawingCache(true);
Bitmap b = editText.getDrawingCache();
canvas.drawBitmap(b, 100, 100, null);
// editText.draw(canvas);
mainActivity.getKeyboard();
}
}
}

我该怎么做?

最佳答案

我认为您正在系统调用您的绘制方法后创建您的 editText 对象。确保在自定义 View 的构造函数中实例化 editText。

关于java - 无法在 Canvas 上绘制 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40450242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com