Dois dispositivos, densidades semelhantes e tamanhos de imagem diferentes?

Ok, aqui está um problema que está me atrapalhando que eu realmente gostaria que você me ajudasse. Estou testando meu aplicativo com o HTC e o Galaxy S2 (como eu sei que ambos são alta densidade) e ambos no intervalo de tela de 3.7-4.3

O problema é que a mesma imagem parece diferente em termos de tamanho nas duas telas. No HTC surpreender é muito menor. Eu tenho minhas 3 pastas drawable com os diferentes tamanhos apropriados (o que eu preciso de qualquer maneira aqui, porque ambos os dispositivos são da mesma densidade)

Eu fiz algumas depurações no DisplayMatrics e achei para o HTC surpreender o seguinte:

density 1.5
desnityDPI 240
Height pixels:540
Width pixels:960
xdpi 258
ydpi 256

No entanto, para a galáxia S2, as métricas de exibição são:

density 1.5
desnityDPI 240
Height pixels:480
Width pixels:800
xdpi 160
ydpi 160

Alguém pode me explicar por que os tamanhos das imagens em ambos os dispositivos são diferentes? No HTC surpreender as imagens são muito menores do que no S2? Obrigado

Editar: Código usado para obter as informações do DP é

DisplayMetrics mt =getApplicationContext().getResources().getDisplayMetrics();

EDITAR:

<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);


}