¿Dos dispositivos, densidades similares pero diferentes tamaños de imagen?

Ok, este es un problema que me desconcierta y realmente me gustaría que me ayudaras. Estoy probando mi aplicación con HTC Amazon y Galaxy S2 (porque sé que ambos son de alta densidad) y ambos en el rango de pantalla 3.7-4.3

El problema es que la misma imagen se ve diferente en términos de tamaño en ambas pantallas. En el HTC amaze es mucho más pequeño. Tengo mis 3 carpetas para dibujar con los diferentes tamaños apropiados (que de todos modos debería necesitar aquí porque ambos dispositivos son de la misma densidad)

Hice algo de depuración en DisplayMatrics y encontré para HTC asombrar lo siguiente:

<code>density 1.5
desnityDPI 240
Height pixels:540
Width pixels:960
xdpi 258
ydpi 256
</code>

Sin embargo, para la galaxia S2 las métricas de visualización son:

<code>density 1.5
desnityDPI 240
Height pixels:480
Width pixels:800
xdpi 160
ydpi 160
</code>

Alguien me puede explicar por qué los tamaños de las imágenes en ambos dispositivos son diferentes. ¿En HTC amaze las imágenes son mucho más pequeñas que en el S2? Gracias

Edición: El código utilizado para obtener la información del DP es

<code>DisplayMetrics mt =getApplicationContext().getResources().getDisplayMetrics();
</code>

EDITAR:

<code><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/carpet"
    android:clipChildren="false"
    android:clipToPadding="false"
    android:keepScreenOn="true" >
    <RelativeLayout
        android:id="@+id/relativeLayoutBottom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:clipChildren="false"
        android:clipToPadding="false" >

        <ImageView
            android:id="@+id/ivBottom1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <ImageView
            android:id="@+id/ivBottom2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp" />

        <ImageView
            android:id="@+id/ivBottom3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="40dp" />
    </RelativeLayout>

   </RelativeLayout>



private void initialize(ArrayList<CardSuitNumber> cards) {

    RelativeLayout flBottom = (RelativeLayout) findViewById(R.id.relativeLayoutBottom);
    player1.clearAll();

    for(int i=0; i<GameConstants.MAXRANKS;i++){
        player1.addCard((ImageView)flBottom.getChildAt(i));


    }
}


public void addCard(ImageView im){


        Drawable drawable = card.getCardSuitNumber().getDrawable(mActivity);
        im.setImageDrawable(drawable);
        imsetVisibility(View.VISIBLE);


}
</code>

Respuestas a la pregunta(4)

Su respuesta a la pregunta