View

aaaa3105563 2010-04-09 09:22:30
我在程序里创建了一个SurfaceView 然后再SurfaceView里创建了一个线程

然后开启线程 为什么线程一开启 我的onDraw里面就不能画图了~

只能在线程里画图 这是什么原因~? 主线程在哪里~ 汗 - -!
...全文
74 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyy025025025 2010-04-09
  • 打赏
  • 举报
回复
请贴代码,好帮你分析一下。
yyy025025025 2010-04-09
  • 打赏
  • 举报
回复
给的code还是很凌乱,不过大概明白你的意思。

在这种情况下,view没有走onDraw,而是走的dispatchDraw.
一般自定义操作了view的canvas都会走到dispatchDraw里面的。
aaaa3105563 2010-04-09
  • 打赏
  • 举报
回复
onDraw里面没反应
aaaa3105563 2010-04-09
  • 打赏
  • 举报
回复
GameThread gameThread;
public void surfaceCreated(SurfaceHolder arg0) {
//启动gameThread
gameThread.start();
}
@Override
protected void onDraw(Canvas canvas) {
Paint pt = new Paint();
pt.setARGB(255, 255, 255, 255);
canvas.drawRect(0, 0, 100, 100,pt);
super.onDraw(canvas);
}
class GameThread extends Thread {
public void run() {
// TODO Auto-generated method stub
while(run) {
Canvas c = null;
try {
synchronized (surfaceHolder) {
c = surfaceHolder.lockCanvas();
c.drawARGB(255, 255, 255, 255);
c.drawText("afd"+xx, 100, 100, new Paint());
xx++;
Thread.sleep(1000);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (c != null) {
surfaceHolder.unlockCanvasAndPost(c);
}
}
}

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧