2014-12-10 3 views
2

enter image description hereMultiple прямоугольник рисования программно

Я пытаюсь сделать этот вид прямоугольника, но я не в состоянии сделать это. Я попытался поместить внутри цикла, но id ничего не показывает. Мой фрагмент кода ниже:

public class MainActivity extends ActionBarActivity { 
    DrawView drawView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    drawView = new DrawView(this); 
    drawView.setBackgroundColor(Color.WHITE); 
    setContentView(R.layout.activity_main); 


    } 
} 

DrawView класс:

public class DrawView extends View { 
Context context=getContext(); 
Paint paint = new Paint(); 


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

@Override 
public void onDraw(Canvas canvas) { 
    int l=50; 
    int t=50; 
    int r=100; 
    int b=100; 

    for(int i=0;i<1;i++){ 
     paint.setColor(Color.BLACK); 
     paint.setStrokeWidth(3); 
     canvas.drawRect(l, t, r, b, paint); 
     paint.setColor(Color.WHITE); 
     canvas.drawRect(l+3, t+3, r-3, b-3, paint); 

     t=t+150; 
     b=b+150; 
     invalidate(l, t, r, b); 
    } 
+0

Помогло ли это? – hasan83

+0

Посмотри, работает ли он –

+0

Можете ли вы принять мой ответ? :) – hasan83

ответ

1

Ваш экземпляр DrawView не добавляется в макете деятельности.

Try:

setContentView(drawView); 
+0

Я просто цифра заметил этот вопрос. Спасибо, в любом случае. Я принимаю ваш ответ –

1

Ваша версия OnDraw() не будет работать. Вы вызываете invalidate() в цикле. invalidate() приводит к вызову onDraw(). Таким образом, ваш вызов onDraw() эффективно рекурсивный.