如何在 ViewGroup 中使用 addView?
Posted
技术标签:
【中文标题】如何在 ViewGroup 中使用 addView?【英文标题】:How to use addView in ViewGroup? 【发布时间】:2011-08-05 05:33:02 【问题描述】:我想使用 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写在正确的地方
谢谢 sneha
【问题讨论】:
【参考方案1】:你的意思是ViewGroup.addView(View, LayoutParams)
吗?
这里有一个关于如何使用ViewGroup
s 的简短guide,也许这就是您想要的。
【讨论】:
ViewGroup.addView(view) 我这里没有使用任何 LayoutParams...不能完成吗?? 我想知道 ViewGroup 中的控制流程是如何或从哪里开始执行的,就像从 onDraw() 中查看它一样以上是关于如何在 ViewGroup 中使用 addView?的主要内容,如果未能解决你的问题,请参考以下文章
[Android FrameWork 6.0源码学习] ViewGroup的addView函数分析