Пользовательский вид внутри Пользовательский вид - PullRequest
1 голос
/ 26 марта 2012

У меня есть пользовательский вид, который расширяет RelativeLayout.Этот Относительный Макет должен состоять из Прямоугольников, которые расширяют Вид, и эти Прямоугольники должны быть закрашены растровым изображением и иметь TextView в нем.

Но я не могу добавить эти Прямоугольники в RelativeLayout, чтобы они были ниже каждогодругие ... кажется, что LayoutParams не работают .. Можете ли вы помочь мне, пожалуйста?

Пользовательский вид расширяет RelativeLayout

public class DrawView extends RelativeLayout {
    private Context context;

    public DrawView(Context context, ArrayList<String> dragFieldText, ArrayList<String> targetFieldText, int height, int width) {
        super(context);
        this.context = context;

        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);

        Rectangle.count = 1;
        for (int i = 0; i < targetFieldText.size(); i++) {

            Rectangle targetRectangle = new Rectangle(context);         
            this.addView(targetRectangle);
        }

        Rectangle tmpRect = null;

        for (int i = 0; i < dragFieldText.size(); i++) {

            Rectangle dragRectangle = new Rectangle(context);

            if(tmpRect != null){
                tmpRect.setId(i);
                lp.addRule(RelativeLayout.BELOW, tmpRect.getId());
                dragRectangle.setLayoutParams(lp);          
            } 

            this.addView(dragRectangle);        
            tmpRect = dragRectangle;

        }       

    }

@Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        int width = View.MeasureSpec.getSize(widthMeasureSpec);
        int height = View.MeasureSpec.getSize(heightMeasureSpec);

        setMeasuredDimension(width, height);
    }

Прямоугольник расширяет Вид

public class Rectangle extends View{

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

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawBitmap(getSomeBitmapImg(), new Matrix(), null);


    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...