gpt4 book ai didi

java - canvas 不在 java android 中绘制

转载 作者:行者123 更新时间:2023-11-30 11:24:50 25 4
gpt4 key购买 nike

我认为代码是正确的,但我找不到问题所在。任何人都可以帮助找出不正确的地方吗?

这就是 Activity 文档:

package com.example.crazyeights;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class CrazyEightsActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView view = new MyView(this);
setContentView(view);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.crazy_eights, menu);
return true;
}

}

这就是我想在屏幕上显示的内容:

package com.example.crazyeights;
import android.content.Context;
import android.view.View;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;

public class MyView extends View{

private Paint redPaint;
private int circleX;
private int circleY;
private float radius;

public MyView(Context context) {
super(context);
redPaint = new Paint();
redPaint.setAntiAlias(true);
redPaint.setColor(Color.RED);
circleX = 100;
circleY = 100;
radius = 30;
}
protected void OnDraw(Canvas canvas){
canvas.drawCircle(circleX, circleY, radius, redPaint);
}
}

最佳答案

您指定的大写 OnDraw() 方法不会以这种方式调用。在使用自定义 View 时,您实际上需要重写 onDraw() 方法,例如:

@Override
protected void onDraw(Canvas canvas) {
canvas.drawCircle(circleX, circleY, radius, redPaint);
}

我测试了它并绘制了一个红色圆圈。请参阅有关自定义绘图的文档 here ,特别是 Override onDraw() 部分。

关于java - canvas 不在 java android 中绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20556225/

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