java - 为什么draw()命令不画我的圆

标签 java android android-studio

我想在每次有人触摸屏幕时创建一个球,但我似乎无法让它工作。我希望它在某个位置创建并生成一个球。有一个 if 语句,用于查看屏幕上是否有点击,并且在 if 语句中,它调用下面进行的绘制以在窗口中绘制一个圆圈。

package com.example.madusha.gravityball;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;

public class GameWindow extends Activity {
private Paint paint;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game_window);

    Button pause = (Button) findViewById(R.id.pausebutton);
    pause.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view){
            Intent intent = new Intent(GameWindow.this, PauseMenu.class);
            startActivity(intent);
        }
    });
}

public boolean onKeyDown(int keyCode, KeyEvent event) {
    int Action = event.getAction();
    if(Action == KeyEvent.ACTION_DOWN){
        onDraw();
        System.out.println("Works???");
        return true;
    }
    return super.onKeyDown(keyCode,event);
}
public void init() {
    paint = new Paint();
    paint.setColor(Color.BLUE);
}
Canvas canvas;
public void onDraw(){
    init();
    int height = 100;
    int width = 100;
    canvas.drawCircle(width, height,100,paint);
}
}

最佳答案

您需要使用OnDraw()函数。这就是在绘制内容时更新 Canvas 的原因。

关于java - 为什么draw()命令不画我的圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37284553/

相关文章:

java - 将新页面中的图像添加到现有 PDF 文件中

java - 如何从列表转换为数组?安卓

java - 使用volley在Android Studio中调用API(JAVA)

java - 在Android Studio中更改ScrollingView的字体

java - 尝试在不导入的情况下获取 View 类方法

android-studio - 编译错误: "-Xcoroutines has no effect: coroutines are enabled anyway in 1.3 and beyond"

java - 授予特定 Java Swing 应用程序完全权限

阅读时的Java排序

java - 如何在jsp页面中显示客户端ip?

android - 写java代码时的SIGSEGV