gpt4 book ai didi

java - 创建了这个简单的代码来在android中绘制圆圈,但它在模拟器上没有显示任何内容

转载 作者:太空宇宙 更新时间:2023-11-04 12:55:47 24 4
gpt4 key购买 nike

我在android中创建了这个简单的代码,它在模拟器上没有显示任何内容,它应该显示一个圆圈。我还必须在 xml 文件中编辑某些内容吗?

这是我的主要 Activity

public class MainActivity extends AppCompatActivity {
Circlexy ourview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ourview = new Circlexy(this);
setContentView(ourview);
}
}

这是我的 Circlexy 类(class):

public class Circlexy extends View {
Bitmap ball;
public Circlexy (Context context){
super(context);
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint= new Paint();
paint.setColor(Color.BLUE);
canvas.drawCircle(canvas.getWidth()/2,canvas.getHeight()/2,100,paint);
}
}

最佳答案

您没有为您的 Activity 设置布局,因此您所做的任何更改(无论是在编程还是在 xml 中)您都将无法看到它。

setContentView() 方法用于将布局 (xml) 文件设置为当前 Activity ,但您将圆形 View 传递给它,您应该使用“R”引用将内容设置为 xml 文件。像这样的东西:

setContentView(R.layout.activity_main);

其中,您的 Activity xml 名为 Activity_main.xml

此外,在另一个注意事项中,您还应该更新您的 Circlexy 类以包含其他构造函数以实现良好的实践。

public class Circlexy extends View {


public Circlexy(Context context) {
super(context);
}

public Circlexy(Context context, AttributeSet attrs) {
super(context, attrs);
}

public Circlexy(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint= new Paint();
paint.setColor(Color.BLUE);
canvas.drawCircle(canvas.getWidth() / 2, canvas.getHeight() / 2, 100, paint);
}

}

关于java - 创建了这个简单的代码来在android中绘制圆圈,但它在模拟器上没有显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35404961/

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