关于网友提出的“哪位大侠帮我看一下,我想画个圆出来,可程序运行不到OnDraw(),请指教!附程序!”问题疑问,本网通过在网上对“哪位大侠帮我看一下,我想画个圆出来,可程序运行不到OnDraw(),请指教!附程序!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:哪位大侠帮我看一下,我想画个圆出来,可程序运行不到OnDraw(),请指教!附程序!
描述: package my.test1;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
public class test1Activity extends Activity {
/** Called when the activity is first created. */
private GameView mGameView=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new Thread(new GameThread()).start();
System.out.println("Activity.Oncreate");
}
class GameThread implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("Thread.run");
while (!Thread.currentThread().isInterrupted()){
try{
Thread.sleep(100);
}
catch(InterruptedException e){
Thread.currentThread().interrupt();
}
System.out.println("postInvalidate 上方");
mGameView.postInvalidate();
}
}
}
public class GameView extends View{
public GameView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
private Paint mPaint = null;
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
System.out.println("onDraw");
mPaint = new Paint();
canvas.drawColor(Color.BLUE);
mPaint.setColor(Color.BLACK);
canvas.drawCircle(40, 70, 30, mPaint);
}
}
}
解决方案1: setContentView(R.layout.main)改为setContentView(new GameView(this));
解决方案2: 1楼正解!
解决方案3: 把GameView当作一个系统view,放在你的xml文件中。
引用时需要加上package名,例如
解决方案4:
是的,而且你的mGameView为null,并没有new一个mGameView对象。
解决方案5: setContentView(R.layout.main);
这句你应该设置你的GameView
以上介绍了“哪位大侠帮我看一下,我想画个圆出来,可程序运行不到OnDraw(),请指教!附程序!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/915589.html