2011-08-05 13 views
3

ViewGroupクラスを使用してビューを追加したかったのです。だから私たちはこれをどのように達成できますか?ViewGroupでaddViewを使用するには?

このような何か::

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 
    } 

2番目のビュー::

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"); 
    }  

おかげ
スネハ

答えて

0

あなたは、単にViewGroup.addView(View, LayoutParams)をもしかして正しい場所にaddViewを書くために私を導いてください?

ViewGroupの使用方法に関する短いguideは、おそらくあなたが探しているものです。

+0

ViewGroup.addView(view)ここでLayoutParamsを使用していません...できませんか? – Smitha

+0

私は、制御フローがどのようにして実行されているかを、ViewGroupのonDraw() – Smitha

関連する問題