Como determinar a largura da tela em termos de dp ou dip em tempo de execução no Androi

Preciso codificar o layout dos widgets do Android usando dip / dp (em arquivos java). Em tempo de execução, se eu codificar,

int pixel=this.getWindowManager().getDefaultDisplay().getWidth();

isso retorna a largura da tela em pixels (px). Para converter isso em dp, eu codifiquei:

int dp =pixel/(int)getResources().getDisplayMetrics().density ;

Isso não parece estar retornando a resposta correta. Eu criei o emulador de WVGA800, cuja resolução de tela é de 480 por 800. Quando o emulador foi executado e o código foi impresso, os valores de pixel e dp chegaram a 320 em ambos. Este emulador é de 240 dpi cujo fator de escala seria 0,75.

questionAnswers(7)

yourAnswerToTheQuestion