簡體   English   中英

創建了這個簡單的代碼來在android中畫圓,並且在模擬器上什么也沒顯示

[英]Created this simple code to draw circle in android and it shows nothing on emulator

我在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);
    }
}

您沒有為Activity設置布局,因此您所做的任何更改(以編程方式或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);
 }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM