gpt4 book ai didi

android - 我需要延迟 Canvas 上的绘图

转载 作者:行者123 更新时间:2023-11-29 00:43:08 29 4
gpt4 key购买 nike

我是新手。尝试制作我的第一款游戏。我需要将透明 png 延迟到我的 Canvas 上,但似乎无法正确处理。

    public LessonsMain(Context context) {
super(context);
// TODO Auto-generated constructor stub


mFujiSensei = getResources().getDrawable(R.drawable.old_man_fuji);
mFujiSensei.setBounds(0,0,mFujiSensei.getIntrinsicWidth(),mFujiSensei.getIntrinsicHeight());

mBackground = getResources().getDrawable(R.drawable.lessons_background);
mBackground.setBounds(0,0,mBackground.getIntrinsicWidth(),mBackground.getIntrinsicHeight());


}

@Override
protected void onDraw(final Canvas canvas) {
super.onDraw(canvas);
mBackground.draw(canvas);

TimerTask task = new TimerTask() {
public void run(){
mFujiSensei.draw(canvas);
}


}; timer.schedule(task, 3000);

}

抱歉还是不明白。我尝试将它放在不同的线程中,但它仍然不起作用。

    public class LessonsMain extends View{

Drawable mBackground;
Drawable mFujiSensei;
Timer timer;
Handler handler;
Runnable runnable;



public LessonsMain(Context context) {
super(context);
// TODO Auto-generated constructor stub


mFujiSensei = getResources().getDrawable(R.drawable.old_man_fuji);
mFujiSensei.setBounds(0,0,mFujiSensei.getIntrinsicWidth(),mFujiSensei.getIntrinsicHeight());

mBackground = getResources().getDrawable(R.drawable.lessons_background);
mBackground.setBounds(0,0,mBackground.getIntrinsicWidth(),mBackground.getIntrinsicHeight());


}

@Override
protected void onDraw(final Canvas canvas) {
super.onDraw(canvas);
mBackground.draw(canvas);
new Thread(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
TimerTask task = new TimerTask() {
public void run(){
mFujiSensei.draw(canvas);
}


}; timer.schedule(task, 3000);
}

}).start();


}

最佳答案

这里的问题是当 timerTask 执行时,它不再在 UI 线程上,因此它无法更新 View 。相反,您需要做的是发布到处理程序,以便可以在 UI 线程上进行绘制。查看this page有关从计时器更新 UI 的深入说明。

关于android - 我需要延迟 Canvas 上的绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8153325/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com