Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在现有活动中绘制线?_Java_Android_Graphics_Draw_Lines - Fatal编程技术网

Java 如何在现有活动中绘制线?

Java 如何在现有活动中绘制线?,java,android,graphics,draw,lines,Java,Android,Graphics,Draw,Lines,事实上,我们想编写一个桥构造器游戏,用户必须能够画出这些线来建造桥 已经回答:我一直在尝试创建一个类,该类允许我在现有布局上画线,但当我们尝试启动“游戏”活动时(按下主菜单中的按钮),应用程序崩溃。 LogCat告诉我们:“致命异常:main”,我们有一个NullPointerException [编辑]:我们现在搜索如何取回我们作为单个对象创建的所有线条(我们假设存在画布创建的位图),但我们真的不知道如何获取这些位图 以下是活动“CustomView”(用于绘制线条)的代码: 提前谢谢你 游戏

事实上,我们想编写一个桥构造器游戏,用户必须能够画出这些线来建造桥

已经回答:我一直在尝试创建一个类,该类允许我在现有布局上画线,但当我们尝试启动“游戏”活动时(按下主菜单中的按钮),应用程序崩溃。 LogCat告诉我们:“致命异常:main”,我们有一个NullPointerException

[编辑]:我们现在搜索如何取回我们作为单个对象创建的所有线条(我们假设存在画布创建的位图),但我们真的不知道如何获取这些位图

以下是活动“CustomView”(用于绘制线条)的代码:


提前谢谢你

游戏/onCreate中有一个错误:

MainLayout = (LinearLayout) findViewById(R.layout.draw);
在这里,您必须获取ID,而不是布局…
因此,在您的/res/layout/game中必须是id=“@+id/draw”的线性布局

解决方案:将上述说明更改为:

MainLayout = (LinearLayout) findViewById(R.id.draw);
注意:它是findViewById,而不是findViewByLayout

[编辑]

您从未在CustomView类中初始化path对象。在构造函数中,在super行之后执行此操作:

mPath = new Path();
[编辑2]

还需要初始化这些对象:

private Paint mPaint;
private Bitmap  mBitmap;
private Canvas  mCanvas;
private Paint   mBitmapPaint;
然后开始使用一个新的绘制对象,绘制,然后尝试使用mBitmapPaint和mPaint

[编辑3]

我发现了一篇你可能会觉得很有趣的帖子:

[编辑4]


最后它终于可以工作了,但是我们现在想要得到我们创建为对象的位图(每一行一行!),让它们移动。。。我们找不到任何关于如何得到它们的信息!我将编辑我们的代码,看看我们做了什么

那真的应该是另一个问题。。。1 Q=>1 A.
编辑问题并将其更改为其他问题是没有意义的(也会增加混乱)。

它还可能使以前的答案无效…

如果你发布日志,这将非常有用。我将它添加到了帖子中!我用新的更正编辑了我的答案,在Edit3中添加了一个有趣的链接,非常感谢您的关注,但不幸的是,它不起作用。。我会看看你的链接,告诉你如果我找到了解决办法!向下滚动至20票以上的答案。它应该和你的目标相似。最后它成功了,但是我们现在想要得到我们作为对象创建的位图(每一行一行!),让它们移动。。。我们找不到任何关于如何得到它们的信息!我将编辑我们的代码,看看我们做了什么!所以,这真的应该是另一个问题。。。1 Q=>1 A。
mPath = new Path();
private Paint mPaint;
private Bitmap  mBitmap;
private Canvas  mCanvas;
private Paint   mBitmapPaint;