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 é executado e o código imprime os valores de pixel e dp, chegou a 320 em ambos. Este emulador é de 240 dpi cujo fator de escala seria 0,75.