我正在开始一个新的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
答案 0 :(得分:1)
我将所述图片放入我的应用程序并运行它
这究竟意味着什么?你可以分享一些代码,你把图像放在哪里?
没有代码答案并不容易,但看起来ImageView的高度和宽度不是设置为wrap-content,而是匹配父级或fill-parent。是这种情况吗?
答案 1 :(得分:1)
Android图片资源与iOS有很大不同。
要了解如何为Android调整图像大小,您必须了解“与密度无关的像素”或简称DP。您可以阅读有关
的更多信息http://developer.android.com/guide/practices/screens_support.html
根据手机的DPI数量,240 x 240像素图像在实际手机上的大小会有所不同(您还可以在上面的链接上看到整个图表)。
一组六个广义密度:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi
这些天大多数手机支持这些尺寸mdpi,hdpi,xhdpi,xxhdi(你将拥有所有这些文件夹,为每张图片提供不同的尺寸。)
让我们假设您将图像尺寸设置为240 x 240像素的mdpi文件夹。现在你需要在hdpi,xhdi,xxhdi文件夹中放入相同的图像。只有这样,它才能在所有设备上看起来都相同。否则,当您在大屏幕手机上观看时,它看起来会越来越小。
您可以使用此公式px = dp * (dpi / 160)
或只使用http://labs.rampinteractive.co.uk/android_dp_px_calculator/
等任何在线计算器进行计算