我在android中创建了这个简单的代码,它在模拟器上没有显示它应该显示一个圆圈。我是否还必须在xml
文件中编辑某些内容?
这是我的主要活动
public class MainActivity extends AppCompatActivity {
Circlexy ourview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ourview = new Circlexy(this);
setContentView(ourview);
}
}
这是我的Circlexy
课程:
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);
}
}
答案 0 :(得分:0)
您没有为您的活动设置布局,因此您所做的任何更改,无论是程序化还是xml,您都无法看到它。
setContentView()方法用于将布局(xml)文件设置为当前活动,但是您将圆圈视图传递给它,您应该使用“R”参考将内容设置为xml文件。 类似的东西:
setContentView(R.layout.activity_main);
其中,您的活动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);
}
}