如何在android中包含多个ImageButton的Viewgroup?

时间:2011-09-21 08:22:43

标签: android view custom-component viewgroup clicklistener

创建自定义Viewgroup时,是否可以在其中包含多个Imagebutton? 是否可以将图像按钮放在我们自己的位置。

如果所有这些都可以,如何调用扩展此视图组的单击侦听器?

我的ViewGroup必须看起来像这个图像 enter image description here

编辑1:

public class CustomViewGroup extends ViewGroup{

    public CustomViewGroup(Context context) {
        super(context);
        setWillNotDraw(false);
        //addImageView();
        // TODO Auto-generated constructor stub
    }
    public CustomViewGroup(Context context, AttributeSet attrs) {
        super(context, attrs);
        setWillNotDraw(false);
        //addImageView();
        // TODO Auto-generated constructor stub
    }
    public CustomViewGroup(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, 
                defStyle);
        setWillNotDraw(false);
        //addImageView();
        // TODO Auto-generated constructor stub
    }
    @Override
    protected void onLayout(boolean arg0, int arg1, int arg2, int arg3, int arg4) {
        // TODO Auto-generated method stub
        System.out.println("onLayout");
    }
    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        drawBackground(canvas);
        addImageView();
        //super.onDraw(canvas);
    }

    private void drawBackground(Canvas canvas)
    {
        Bitmap background =BitmapFactory.decodeResource(getContext().getResources(), R.drawable.shape_quarter_circle);
        canvas.drawBitmap(background, 0,0, null);
    }
    private void addImageView()
    {
        ImageView imageOne = new ImageView(getContext());
        imageOne.setImageDrawable(getContext().getResources().getDrawable(R.drawable.round_icon));
        //imageOne.setWillNotDraw(false);
        addView(imageOne);
        requestLayout();

    }

我正在尝试绘制背景并将一些ImageView放在背景的顶部。 在此代码中,背景图像正确显示。但我看不到它上面的ImageView。 我正走在正确的道路上吗?

1 个答案:

答案 0 :(得分:1)

你说的所有事情都是可能的。

你只需使用

yourViewGroup.setOnClickListener()

为您的视图组点击侦听器。