Android图片大小

dan*_*nca 5 size resources android screen

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

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

任何指针将不胜感激.

谢谢!

hac*_*bod 7

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

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

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

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


dam*_*nix 1

将图像放入例如后

/res/layout-480x800` - if you know resolution
/res/layout-w480dp - if you know witdh
/res/layout-h800dp - if you know height
Run Code Online (Sandbox Code Playgroud)

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

android:src="@drawable/background"
Run Code Online (Sandbox Code Playgroud)

或者

imageView.setImageResource(R.drawable.background);
Run Code Online (Sandbox Code Playgroud)

限定符的优先顺序可以在文档中找到(表 2)