Domanda

ho creato il figlio di RelativeLayout. Nel suo costruttore ho chiamato:

    public CanvasHolder(Context context, AttributeSet attrs) {
        super(context, attrs);
        LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        layoutInflater.inflate(R.layout.canvas_holder, this);    
        this.draw(new Canvas());
    }

E poi metodo di sostituzione OnDraw ():

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        black.setARGB(255, 0, 0, 0);
        black.setAntiAlias(true);
        int halfWidth = this.getWidth() / 2;
        int height = this.getHeight();
        canvas.drawLine(0, 0, halfWidth, height, black);
    }
è stato apparso

Nessuna linea sulla vista. Inoltre, ho cercato di non chiamata "This.Draw ()", ma non è successo niente.

ho scoperto che metà larghezza e l'altezza è uguale a 0. Perché?

P.S. anche se ho impostato la larghezza e l'altezza in modo statico, non cambierà nulla. Se non ti dispiace, date un'occhiata su questa applicazione di esempio: perché nulla è tratto? http://androidforums.com/attachment.php?attachmentid=21715&stc=1&d=1315232946

È stato utile?

Soluzione 2

ho trovato la soluzione non banale. Ho Inited la vista dal costruttore con 1 parametro. E poi ho inserito la visualizzazione personalizzata nel layout e denominato invalidate () quando ne avevo bisogno.

Altri suggerimenti

Lo si sovrascrive il onMeasure? Qui è la mia - è possibile che questo viene chiamato un paio di volte mentre la vista è carico, a volte con 0 valori:

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

    int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
    int parentHeight = MeasureSpec.getSize(heightMeasureSpec);

    if (parentHeight > 0) {
        this.setMeasuredDimension(parentWidth, parentHeight);
        // ... other stuff ...
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top