2011-08-05 24 views
3

Я хотел использовать класс ViewGroup и добавлять в него виды. Итак, как мы можем это сделать?Как использовать addView в ViewGroup?

Нечто подобное ::

public class DrawView extends View { 
    private static final String TAG = "DrawView"; 
    List<Point> points = new ArrayList<Point>(); 
    Paint paint = new Paint(); 
    public DrawView(Context context) { //2 

     super(context); 
     System.out.println("drawwwwwwwwwwwwwwwwwwwwwconnnnnnnnnnnnn"); 

     setFocusable(true); 
     setFocusableInTouchMode(true); 
     paint.setColor(Color.MAGENTA); 
     paint.setAntiAlias(true); 

    }   
    @Override 
    public void onDraw(Canvas canvas) { 
     System.out.println("drawwwwwwwwwwwwwwwwwwwww"); 
     for (Point point : points) { 
      canvas.drawCircle(point.x, point.y, 5, paint); 
      // Log.d(TAG, "Painting: "+point); 

     }  
    } 

ViewGrp ::

public class Group extends ViewGroup{ 
    DrawView draw; 
    SecondView sec; 
    public Group(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
     draw=new DrawView(getContext()); 
     sec=new SecondView(getContext()); 
     addView(draw); 
     addView(sec); 
     System.out.println("hellloooooooo"); //4 
    } 

    @Override 
    protected void onLayout(boolean changed, int l, int t, int r, int b) { 
     // TODO Auto-generated method stub 
     System.out.println("hiiiiiiiiii layoutttttttttt"); //6 
    } 


} 

Основная деятельность:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     System.out.println("222222222222222222222"); //1 
     grp=new Group(this); 
     setContentView(grp); 
     System.out.println("1111111111111111111"); //5 
    } 

Второй вид ::

public class SecondView extends View { 

    private static final String TAG = "DrawView2"; 

    Paint paint = new Paint(); 
    public SecondView(Context context) { //3 
     super(context); 
     System.out.println("secccccccccccccccccccccccccccccccconnnnnnnn"); 
     setFocusable(true); 
     setFocusableInTouchMode(true); 
     paint.setColor(Color.MAGENTA); 
     paint.setAntiAlias(true); 

    }  
    @Override 
    public void onDraw(Canvas canvas) { 
     canvas.drawColor(Color.BLUE); 
     // Log.d(TAG, "Painting: "+point); 
     System.out.println("seccccccccccccccc1"); 
    }  

Пожалуйста, руководство меня написать addView в нужном месте

Благодаря
снеха

ответ

0

Вы просто значит ViewGroup.addView(View, LayoutParams)?

Вот короткий guide о том, как использовать ViewGroup s, возможно, это то, что вы ищете.

+0

ViewGroup.addView (просмотреть) i m не использует какие-либо LayoutParams здесь ... не могу это сделать ?? – Smitha

+0

Мне захотелось узнать, как происходит поток управления или откуда начинается выполнение в ViewGroup, как в его представлении от onDraw() – Smitha

Смежные вопросы