Android图片大小

时间:2011-12-04 00:06:20

标签: android resources size screen

我开始使用android开发,我有一些关于支持不同屏幕尺寸的问题。我已经阅读了所有关于它的here但仍然没有得到如何在不同的屏幕上使用不同大小的图像。我的情况是我在res / drawable / hdpi中放了一个图像,当我的三星注入4g以及我的galaxy 10.1平板电脑上时,它会被拾取。因为它们具有相同的密度等级,所以图像在两个设备上具有大致相同的物理尺寸。这就是问题,显然我希望我的平板电脑上的图像更大,但我还没有找到办法做到这一点。

我确实看过另外一个小,中,大的分类,但这似乎只适用于布局而不是图像资源。

任何指针都会受到赞赏。

谢谢!

3 个答案:

答案 0 :(得分:7)

这两个设备的密度不同。三星Infuse是hdpi,Galaxy Tab 10.1是mdpi。

此外,您通常不希望平板电脑上的图像更大。考虑一下 - 如果我在我的应用程序中有一个联系人列表,我希望它们在手机和平​​板电脑上的高度相同,因为没有用它们使它们更高(高度足以显示文本并且能够用我的手指点击它,但我想做的是使用额外的空间来显示更多的空间。

如果您确实想要平板电脑上的图像比手机上的图像更大,那么您需要更多地了解您实际想要完成的内容。例如,也许这是一张背景图片?在这种情况下,您可能正在寻找的只是让图像拉伸以填满屏幕。 (请注意,在Android上制作背景图片非常棘手,因为您需要处理各种适合的屏幕尺寸。为避免让自己变得疯狂,背景图像通常应该非常抽象,以便拉伸效果很好以安卓3.0和4.0中使用的背景图像为例,以默认主题为例。)

如果您正在编写游戏,这是一个非常不同的世界,您应该考虑是否要使用基于密度的资源。一般来说,游戏将拥有独立于密度的资源,只需让他们的游戏场地填满整个屏幕,并且对平板电脑上的结果感到满意。

答案 1 :(得分:1)

将图像放入例如

之后
/res/layout-480x800` - if you know resolution
/res/layout-w480dp - if you know witdh
/res/layout-h800dp - if you know height

Android自动为您选择图片。只需将图片放入分辨率但名称相同的子文件夹中。然后使用(没有spacyfing限定符):

android:src="@drawable/background"

imageView.setImageResource(R.drawable.background);

限定符的优先顺序可以在documentation(表2)

中找到

答案 2 :(得分:0)

平板电脑通常是xhdpi,而不是hdpi。因此,对于Samsung Infuse,请将图像放入:

/res/drawable-hdpi/

对于平板电脑,请将其放入:

/res/drawable-xhdpi

通过

设置图像资源时
android:src="@drawable/image"

imageView.setImageResource(R.drawable.image);

它将根据设备的密度选择合适的图像。