我創建了一個繪製addTimeline()方法傳遞的時間軸的類。 這個類擴展了View類,我完成了onDraw()方法的重載。在addTimeline()中有一個「invalidate()」調用,所以當插入時間線時,class將繪製它。我在另一個類中添加了一些時間軸,它通過「for」語句並調用addTimeline()類來擴展Activity。用畫布繪製麻煩Android
那麼,只繪製了上一個創建的時間線,之前沒有顯示,只有空白區域。
有沒有人可以理解爲什麼我的應用程序有這種行爲?
謝謝。
*我已經添加CODE *
在這裏,我插入時間軸
public void addTimeline(int x, int y, int totaleDurata, int distanzaIntervalli, int spessore, int color)
{
this.totaleDurata = totaleDurata;
this.spessoreTimeline = spessore;
this.color = color;
this.coordinataX = x;
this.coordinataY = y + 10;
this.distanzaIntervalli = distanzaIntervalli;
setPaint();
invalidate();
}
方法的onDraw()和setPaint()
private void setPaint()
{
p.setStyle(Paint.Style.FILL_AND_STROKE);
p.setAntiAlias(true);
p.setColor(color);
p.setStrokeWidth(1);
}
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
canvas.drawColor(Color.CYAN);
disegnaGrain(canvas,p);
disegnaRettangolo(canvas,p);
disegnaPunta(canvas,p);
}
在活動I」已經寫了這段代碼來插入時間線
for(int i=1, atLeastLength = 100, x = 10, y = 30; i<=5; i++, y += 100)
{
setContentView(disegnoTimeline);
Random r = new Random();
int randomNum = r.nextInt((550 - 100) + 1) + 100;
disegnoTimeline.postInvalidate();
disegnoTimeline.addTimeline(x, y, atLeastLength + randomNum,
}
您能否向我們提供您的onDraw代碼以及您致電何處無效? – hoomi 2014-08-28 14:34:19
如果你只是發表一個模糊的描述,我們不能幫助。如何一點點的代碼,甚至應用程序的屏幕截圖? – Gumbo 2014-08-28 14:40:03