我做了一些代码,但仍然在路上完成整个图表。但此时我只想在模拟器中显示一个CIRCLE,只是为了确保我在正确的路径上。但是没有一个是now.the requestWindowFeature(Window.FEATURE_NO_TITLE);正在工作,但其余的不是。帮助我。
package com.Sabry.yesbmi;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
public class Chart extends Activity {
Paint paint;
@Override
public void onCreate( Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
requestWindowFeature( Window.FEATURE_NO_TITLE );
setContentView( R.layout.chart );
initializeView();
}
private void initializeView() {
paint = new Paint();
paint.setColor( Color.BLACK );
paint.setStrokeWidth( 2 );
paint.setTextSize( 20 );
paint.setStyle(Paint.Style.STROKE);
setContentView( new Panel( this ) );
}
class Panel extends View {
public Panel( Context context ) {
super( context );
}
}
public void onDraw( Canvas canvas ) {
int originX = 10, originY = 800;
canvas.drawColor( Color.WHITE ); // Background color
canvas.drawCircle( 300, 80, 20, paint );
}
}
答案 0 :(得分:2)
我编辑了您的问题并格式化了代码。现在很明显你在Panel类之外有onDraw()。如您所知,它是您的活动的一种方法。
在这里,我删除了额外的括号。
class Panel extends View {
public Panel( Conext context ) {
super( context );
}
public void onDraw( Canvas canvas ) {
int originX = 10, originY = 800;
canvas.drawColor( Color.WHITE ); // Background color
canvas.drawCircle( 300, 80, 20, paint );
}
}
使用@Override
注释装饰重写方法并不是必需的,但这是一种很好的做法。如果你这样做了,编译器会给你一个错误,因为Acitivty
没有onDraw
方法。