【问题标题】:Two devices, similar densities yet different image sizes?两种设备,密度相似但图像尺寸不同?
【发布时间】:2012-05-09 19:39:21
【问题描述】:

好的,这是一个令我困惑的问题,我真的希望你能帮助我解决这个问题。 我正在使用 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 星系,显示指标是:

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


}

【问题讨论】:

  • 你试过在 S2 上放一个新的 rom 吗?这两款手机的操作系统版本是什么?
  • 新ROM?不知道这意味着什么,但我不这么认为。操作系统版本是 Galaxy 上的 android 2.3.5 和 HTC 上的 2.3.4
  • 我曾经遇到的 S2 有一个问题,它从错误的资源文件夹中获取资源。要查看设备从哪个文件夹获取资源,您可以尝试以下操作:在不同资源文件夹中使用相同名称的不同图像,并检查哪个设备正在加载哪个。
  • cyanogenmod.com/devices/samsung-galaxy-s2,安装在 S2 上,然后重新运行测试以查看密度
  • 我对 Vikram 进行了测试,两者都从高密度文件夹中提取... L7,问题不在于 S2。 HTC amaze 显示的图像比预期的要小..加上不想损坏 S2 手机:)

标签: android android-layout


【解决方案1】:

HTC 的 xdpi 和 ydpi 非常高,所以图像更小。

我记得有一个错误,报告的 xdpi 和 ydpi 完全错误,老实说,它们看起来是错误的。

【讨论】:

  • The amaze 的 DPI 值是正确的。正如我们所看到的,如果我们做一个简单的毕达哥拉斯。 Sqrt (960/258^2 + 540/256^2) = 4,27"
  • 我错了格伦。道歉。
【解决方案2】:

【讨论】:

  • 它没有说明我为什么会遇到问题或如何解决。我的问题不在于 X/Y 值,因为我不使用它们。我只是把它们拿出来让人们在需要时回答我的问题。我的问题是图像大小
【解决方案3】:

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

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

在屏幕尺寸方面,三星 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 sense 和 S2 迁移时,我会遇到同样的事情。

【讨论】:

  • 我们在这里谈论的是两个“高密度”设备。 HTC 的密度为 256 ppi,S2 的密度为 207 ppi。我同意图像的大小不会完全相同,但是将其缩小太多(大约一半大小)是没有意义的。会不会是 S2 报告 X/Y 值错误?我以为它们没有被使用。由于两者都报告 DPI 为 240
  • 编辑:我们在这里谈论的是两个“高密度”设备。 HTC 的密度为 256 ppi,S2 的密度为 207 ppi。我同意图像的大小不会完全相同,但是将其缩小太多(大约一半大小)是没有意义的。会不会因为 S2 报告 X/Y 值错误而导致图像变大?我以为它们没有被使用。由于两者都报告了 240 的 DPI。使用 HTC 和 Note 的人都说卡片太小而看不到。在我的 S2 上,它们很大。我该怎么办!它打败了我对密度和文件夹的了解
  • 你的游戏叫什么名字?很高兴在我的 HTC 感觉上测试它
  • 问题是它不是免费的它叫Trex
【解决方案4】:

我不确定,但我根据您的问题了解到的一种解决方案是,您必须根据设备屏幕分辨率进行布局。

就像,

Galaxy SII 支持 layout-normal-hdpi

就像,

也许 HTC amaze 支持 layout-large Screen。

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

希望对你有帮助。

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

享受编码。 . . . :)

【讨论】:

  • 两个屏幕都被认为是正常大小。屏幕所以使用不同的布局文件夹没有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
  • 1970-01-01
  • 1970-01-01
  • 2020-08-15
  • 2021-11-04
  • 1970-01-01
相关资源
最近更新 更多