gpt4 book ai didi

android - draw(Canvas canvas) 方法在应用程序中运行两次

转载 作者:太空狗 更新时间:2023-10-29 14:28:55 24 4
gpt4 key购买 nike

首先请查看我的代码。

这是我的代码:-

public GameView(Context context){ 
super(context);

Display display = ((WindowManager)context.getSystemService(
Context.WINDOW_SERVICE)).getDefaultDisplay();
}

@Override
public void draw(Canvas canvas) {
// TODO Auto-generated method stub

int x = 0;
int y = 0;

bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
int imageWidth = bmp.getWidth();
int imageHeight = bmp.getHeight();

int width = display.getWidth();
System.out.println("Width = " +width);
int height = display.getHeight();
System.out.println("Height = " +height);
Random randomX,randomY;
randomX = new Random();
randomY = new Random();

x = randomX.nextInt(width - imageWidth);
System.out.println("X = " +x);
y = randomY.nextInt(height - imageHeight);
System.out.println("Y = " +y);

Rect dst = new Rect(x , y , x + imageWidth , y + imageHeight);
canvas.drawBitmap(bmp, null , dst , null);
System.out.println("dst = " +dst);


super.draw(canvas);
}

我的代码运行完美,但我的问题是 draw(Canvas canvas) 运行了两次。这是我每次都以不同的值在 Logcat 中获取它们的日志:-

Width=480
Height=800
X=247
Y=456
dst = Rect(247 , 456 - 319 , 528)
Width=480
Height=800
X=119
Y=560
dst = Rect(119 , 560 - 191 , 632)

每次我运行我的应用程序时,draw(Canvas canvas) 都会运行两次。我不希望它每次都运行两次。帮助我摆脱这个问题。任何帮助将不胜感激。

最佳答案

当你覆盖任何方法时,最好调用

 super.overridedMethod();

首先,然后编写您的实现代码。

尝试,

 super.draw();
//NOW YOUR STUFF

或删除 super.draw();

更新

你最好覆盖 onDraw() 方法而不是 draw()

再次更新

确保 setContentView(new GameView(this));onCreate() 中被调用。

希望对你有帮助

关于android - draw(Canvas canvas) 方法在应用程序中运行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8814848/

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