两种设备,密度相似但图像尺寸不同?

时间:2012-04-30 03:03:43

标签: android android-layout

好的,这是一个困扰我的问题,我真的希望你帮助我。 我正在用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惊奇图像比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 个答案:

答案 0 :(得分:2)

答案就在你面前的数字中。

来源http://www.androidauthority.com/htc-amaze-4g-vs-samsung-galaxy-s-ii-t-mobile-27110/

  

在屏幕尺寸方面,三星Galaxy S2略大一些   屏幕有4.52英寸的显示屏。 HTC Amaze 4G,另一方面   手,配有与国际变体相似的屏幕   银河S2-4.3英寸。

HTC Amaze具有更高的分辨率和更小的物理屏幕。这导致更高的像素密度 - 这意味着更小的物理像素,因为需要将更多的物理像素塞入更紧密的地方。

因此,例如240x160的图像在Amaze上看起来会更小。

报告的S2的DPI值显然是错误的。根据给出的指标,它是' 800/160 =长边5英寸,短边480/160 = 3英寸。 这将使屏幕尺寸为sqrt(5 * 5 + 3 * 3)= 5.8英寸。

惊奇的DPI值是正确的。正如我们所看到的,如果我们做一个简单的毕达哥拉斯。 Sqrt(960/258 ^ 2 + 540/256 ^ 2)= 4,27“

作为一名开发人员,我从测试设备HTC感觉和S2中感受到同样的事情。

答案 1 :(得分:0)

HTC上的xdpi和ydpi非常高,这就是图像变小的原因。

我记得有一个错误,报告的xdpi和ydpi总是错误的,说实话,他们看起来不对。

答案 2 :(得分:0)

答案 3 :(得分:0)

我不确定,但我根据您的问题了解的One Solution是,您必须根据设备屏幕分辨率制作布局。

同样,

Galaxy SII支持布局 - 正常 - hdpi

同样,

也许HTC惊奇支持布局 - 大屏幕。

因此,请尝试根据设备制作布局,它将解决您的问题。

希望它会对你有所帮助。

与您的问题相同的其他细节如下:android-layout-issue-for-htc-evo-3d

享受编码。 。 。 。 :)