2012-07-09 2 views
7

Ho una finestra di dialogo personalizzata che viene estesa dalla finestra di dialogo. per posizionare il componente su di esso, ho bisogno di conoscere la larghezza della finestra di dialogo. come potrei farlo? GrazieCome ottenere la dimensione di una finestra di dialogo personalizzata in Android?

EDIT:

public class AnswerTypeDialog extends Dialog{ 
    public AnswerTypeDialog(Context context) { 
     super(context); 
     mContext = context; 
    } 

    @Override 
    protected void onCreate(final Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     init(); 
    } 

    protected void init(){ 
     ll=(RelativeLayout) LayoutInflater.from(mContext).inflate(R.layout.answertype_layout, null); 
     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(ll); 
     mWindowWidth = this.getWindow().getAttributes().width; 
    } 
} 

mWindowWidth è zero.

+0

il relativo fino a che cosa date altezza larghezza del dialogo. – AkashG

+0

@seaplain l'hai capito? – anuj

+0

prova a cambiare il tuo modo di pensare. Usa risorsa identifica e crea più layout in base alle dimensioni dello schermo. – vladaman

risposta

-2

È possibile utilizzare questo frammento

int height=mDialog.getWindow().getDecorView().getHeight(); 
int width=mDialog.getWindow().getDecorView().getWidth(); 
+1

ma restituisce 0. – shohreh

+0

@shohreh ci mostra il codice che cosa stai facendo – Akram

+4

restituisce solo una costante associata al suo attributo, ad esempio -2 = WRAP_CONTENT. Questa risposta è inutile. – slezadav

0

Questo funzionerà.

@Override 
    public void onWindowFocusChanged (boolean hasFocus) { 
     super.onWindowFocusChanged(hasFocus); 
     int height=mDialog.getWindow().getDecorView().getHeight(); 
    int width=mDialog.getWindow().getDecorView().getWidth(); 
}