Java 在android上实例化画布后,不会发生任何事情

Java 在android上实例化画布后,不会发生任何事情,java,android,Java,Android,我不知道画布上发生了什么事: // @param String source Bitmap bmp = BitmapFactory.decodeFile(source); Log.i("output", "This message will be printed!"); Canvas canvas = new Canvas(bmp); Log.i("output", "This message will NOT be printed, canvas stop all!"); 实例化Can

我不知道画布上发生了什么事:

// @param String source
Bitmap bmp = BitmapFactory.decodeFile(source);

Log.i("output", "This message will be printed!");

Canvas canvas = new Canvas(bmp);

Log.i("output", "This message will NOT be printed, canvas stop all!");
实例化
Canvas
后,没有打印任何内容,我无法运行任何代码,但应用程序不会关闭

► 运行(调用后的输出):

D/dalvikvm:GC_并发释放131K,4%释放11360K/11783K,暂停11ms+1ms,总计15ms

D/OpenGLRenderer:TextureCache::callback:name,删除大小,mSize=22338561157696

D/OpenGLRenderer:TextureCache::callback:name,删除大小,mSize=24368641120832


您需要创建另一个具有bmp属性的位图,并将其传递到画布:

Bitmap bmp = BitmapFactory.decodeFile(source);
Bitmap bmOverlay = Bitmap.createBitmap(bmp.getWidth(),bmp.getHeight(),bmp.getConfig());
Canvas canvas = new Canvas(bmOverlay);

但你不会在任何地方通过画布。它将吸引到哪里?另外,您的
位图的大小是多少?也许它太大了。@eCalips我的图像较小,只是为了在emulator上进行测试,我实例化了Canvas以便在需要时使用它的实例,这是问题吗?谢谢你!你确定,第二个Log.d没有打印出来吗?时间流逝之后?若它并没有抛出异常,那个么它必须到达那个点。也许您应该尝试使用调试器来确保成功加载了
位图
。@eCalips当您告诉我“它将在哪里绘制?”时,我改为:canvas=new canvas();drawBitmap(bmp,0,0,null);感谢您的支持,给您带来的不便深表歉意(很高兴我能帮助您)