0

さて、ここで私を困惑させている問題があります。あなたに助けてもらいたいのです。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);


}
4

4 に答える 4

2

答えは目の前の数字にある。

ソースhttp://www.androidauthority.com/htc-amaze-4g-vs-samsung-galaxy-s-ii​​-t-mobile-27110/

画面サイズについては、Samsung Galaxy S2 のほうがやや大きく、4.52 インチです。一方、HTC Amaze 4G には、Galaxy S2 – 4.3 インチの国際版と同様のサイズの画面が付属しています。

HTC Amaze は解像度が高く、物理画面が小さくなっています。これにより、ピクセル密度が高くなります。これは、より多くのピクセルをより狭い場所に詰め込む必要があるため、物理ピクセルが小さくなることを意味します。

したがって、たとえば 240x160 の画像は、Amaze では小さく表示されます。

S2 について報告された DPI 値は明らかに間違っています。与えられた測定基準によると、長辺は 800/160 = 5 インチ、短辺は 480/160 = 3 インチです。これにより、画面サイズは sqrt (5 * 5 + 3*3 ) = 5,8 インチになります。

The amaze の DPI 値は正しいです。単純なピタゴラスを行うとわかるように。平方根 (960/258^2 + 540/256^2) = 4,27"

開発者として、テスト デバイスの HTC センセーションと S2 から移動するときに同じことを経験します。

于 2012-08-03T12:24:46.540 に答える
0

これはこの問題に関連していますか:https ://groups.google.com/forum/?fromgroups#!topic / android-developers / g56jV0Hora0

于 2012-08-03T10:18:13.557 に答える
0

よくわかりませんが、あなたの問題に基づいて私が知っている1つの解決策は、デバイスの画面解像度に従ってレイアウトを作成する必要があるということです。

など、

Galaxy SII サポート layout-normal-hdpi

など、

たぶん、HTC amaze はレイアウトの大画面をサポートします。

したがって、デバイスごとにレイアウトを作成してみてください。問題が解決します。

それがあなたを助けることを願っています。

あなたの質問と同じ他の詳細はここにあります: android-layout-issue-for-htc-evo-3d

コーディングをお楽しみください。. . . :)

于 2012-08-06T08:02:31.163 に答える
0

HTC の xdpi と ydpi は非常に高いため、画像が小さくなっています。

報告された xdpi と ydpi が完全に間違っているというバグがあったことを覚えています。

于 2012-08-03T10:04:39.110 に答える