Todos las vistas necesitan al menos 2 valores: layout_width y layout_height
Los valores pueden ser:
1. wrap_content (Envuelve el contenido)
2. match_parent (Se ajusta al contenedor padre)
3. Y medidas especificas, por ejemplo 10px, 15dp, 16sp, etc...
No todas las pantallas tienen la misma densidad de pixeles y aquí es donde entra los DPI:
Ejemplo:
Si manejas tus medidas en pixeles, en pantallas donde tengan mas alta densidad de resolución tu imagen se vera así:
Para resolver ese problema android usa dp que es una unidad que trabaja relativamente a una densidad de pixeles determinada de 160 pixeles en una pulgada (basicamente especificar 160dp es casi poner una pulgada en una pantalla). Usando esta medida tus botones se pueden ver del mismo tamaño no importa de la densidad de pixeles:
Seguir leyendo mas en Ingles:
http://developer.android.com/guide/p...s_support.html