さて、ここで私を困惑させている問題があります。あなたに助けてもらいたいのです。HTC amaze と Galaxy S2 の両方 (どちらも高密度であることはわかっているため) でアプリをテストしており、両方とも 3.7 ~ 4.3 の画面範囲でテストしています。
問題は、同じ画像でも両方の画面でサイズが異なって見えることです。HTCの驚きでは、それははるかに小さい. 適切な異なるサイズの 3 つの描画可能なフォルダーがあります (両方のデバイスの密度が同じであるため、ここでとにかく必要なはずです)。
DisplayMatrics でいくつかのデバッグを行ったところ、HTC の驚くべき結果が次のようにわかりました。
density 1.5
desnityDPI 240
Height pixels:540
Width pixels:960
xdpi 258
ydpi 256
ただし、S2 Galaxy の表示メトリックは次のとおりです。
density 1.5
desnityDPI 240
Height pixels:480
Width pixels:800
xdpi 160
ydpi 160
両方のデバイスの画像サイズが異なる理由を誰かが説明してくれませんか? HTC の amaze 画像は S2 よりもはるかに小さいですか? ありがとうございました
編集:DP情報を取得するために使用されるコードは
DisplayMetrics mt =getApplicationContext().getResources().getDisplayMetrics();
編集:
<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);
}