图像尺寸(屏幕密度)问题

Issue with image size (screen density)

我正在开始一个新的 Android 项目。我在 .psd 文件中获得了所有必要的图形材料。这些材料专为 1080 x 1920 分辨率设计,因为它也是一个 iOS 应用程序。当我 运行 遇到一个奇怪的问题时,我正要调整图像以适应各种屏幕密度。

切了几张图片后,我决定 运行 在模拟器中进行一些测试。我使用的测试图像是菜单图像之一。它的大小为 240 x 240 像素,正如人们所期望的那样,在 .psd 文件中大约占屏幕宽度的四分之一。然而,一旦我将所述图像放入我的应用程序并 运行 它在 1080 x 1920 模拟器上,该图像几乎占据了屏幕宽度的 2/3。这怎么可能?

编辑: 我的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
    android:id="@+id/imgMenu"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/btn_tourist_info_selector"
    android:adjustViewBounds="true"/>
</LinearLayout>

我正在使用的图像:http://oi61.tinypic.com/2zgwwfp.jpg

I put said image in my app and ran it

这到底是什么意思?你能分享一些代码吗?你把你的图片放在哪里?

没有代码答案并不容易,但看起来 ImageView 的高度和宽度没有设置为 wrap-content,而是 match-parent 或 fill-parent。是这样吗?

Android图片资源与iOS有很大不同。

要了解如何为 Android 调整图像大小,您必须了解 "Density-independent pixel" 或简称 DP。您可以阅读更多关于

http://developer.android.com/guide/practices/screens_support.html

一张 240 x 240 像素的图片在实际 phone 上会根据 phone 有多少 DPI 而有不同的尺寸(您也可以在上面的 link 上看到整个图表) .

一组六个广义密度:

ldpi (low) ~120dpi  
mdpi (medium) ~160dpi  
hdpi (high) ~240dpi  
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi

现在大多数 phones 支持这些尺寸 mdpi、hdpi、xhdpi、xxhdi(您将拥有所有这些文件夹,用于为每个图像提供不同的尺寸。)

假设您将尺寸为 240 x 240 像素的图像放在 mdpi 文件夹中。现在您还需要将相同的图像放入 hdpi、xhdi、xxhdi 文件夹中。只有这样它才会在所有设备上看起来大小相同。否则当你在大屏幕上看时它会越来越小 phones.

您可以使用此公式计算尺寸 px = dp * (dpi / 160)

或者使用任何在线计算器计算,例如 http://labs.rampinteractive.co.uk/android_dp_px_calculator/