Java 不显示可绘制的图形
为什么不显示Java 不显示可绘制的图形,java,android,drawable,Java,Android,Drawable,为什么不显示mImage public class Manager extends Thread{ private SurfaceHolder mSurfaceHolder; private boolean mRunning; public Drawable mImage; public Manager(SurfaceHolder surfaceHolder, Context context){ mSurfaceHolder = surfaceHolder;
mImage
public class Manager extends Thread{
private SurfaceHolder mSurfaceHolder;
private boolean mRunning;
public Drawable mImage;
public Manager(SurfaceHolder surfaceHolder, Context context){
mSurfaceHolder = surfaceHolder;
mRunning = false;
Resources res = context.getResources();
mImage = res.getDrawable(R.drawable.nhero2);
public void setRunning(boolean running)
{
mRunning = running;
}
public void run()
{
while (mRunning)
{
Canvas canvas = null;
try
{
// подготовка Canvas-а
canvas = mSurfaceHolder.lockCanvas();
synchronized (mSurfaceHolder)
{
// собственно рисование
//doDraw(canvas);
mImage.draw(canvas);
}
}
catch (Exception e) { }
finally
{
if (canvas != null)
{
mSurfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
}
}
对不起,我的英语不好
p.p.S。
我想创造我自己的斯克罗尔射手哈
此处的完整代码(sry用于错误注释)
班级经理
类视图和类scrolBckgr我认为您遇到的主要问题是,只要使用
.start()启动线程
布尔值mRunning
为false,线程将立即完成。当您尝试调用.setRunning(true)时代码>线程启动后不会有任何效果,因为线程已经完成 您需要调用mImage.setBounds(…);否则画布将不知道在何处绘制可绘制对象。请检查此答案Lalit Poptani,谢谢您的帮助!thx,但我不这么认为-实际上,如果我重新打包注释,并尝试设置mRunning=true,则doDraw()是有效的代码>也在构造函数中,但没有任何变化。好吧,绘制线程总是很困难的。您可以尝试调用invalidate()方法,或者阅读本文