Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按屏幕大小列出的Android资源文件夹_Android_Porting_Screen Size - Fatal编程技术网

按屏幕大小列出的Android资源文件夹

按屏幕大小列出的Android资源文件夹,android,porting,screen-size,Android,Porting,Screen Size,我开发了一款Android游戏,它几乎支持市场上的分辨率(240x320、320x480、480x800、480x854、600x1024) 我的问题是,当我试图支持平板电脑时,我不明白为什么Android会将资源划分在不同的文件夹(hdpi、ldpi、mpdi、大型mdpi等)中,而这些限定符并不有用! 我有几个图形集(根据宽度),但我快发疯了,例如,有密度mdpi或ldpi的平板电脑480x800!不可能接触到所有设备 那么,你知道如何在文件夹中划分绘图/位图,但只能通过分辨率来访问吗??是

我开发了一款Android游戏,它几乎支持市场上的分辨率(240x320、320x480、480x800、480x854、600x1024)

我的问题是,当我试图支持平板电脑时,我不明白为什么Android会将资源划分在不同的文件夹(hdpi、ldpi、mpdi、大型mdpi等)中,而这些限定符并不有用! 我有几个图形集(根据宽度),但我快发疯了,例如,有密度mdpi或ldpi的平板电脑480x800!不可能接触到所有设备

那么,你知道如何在文件夹中划分绘图/位图,但只能通过分辨率来访问吗??是的,我知道位图别名,但它不是解决方案


谢谢

我相信您将屏幕大小与像素密度混为一谈:

来自开发指南:

  • 该平台支持一组资源限定符,允许您根据需要提供特定于大小和密度的资源。特定于大小的资源的限定符有
    small
    normal
    large
    xlarge
    。针对密度特定资源的是
    ldpi
    (低)、
    mdpi
    (中)、
    hdpi
    (高)和
    xhdpi
    (特高)。限定符对应于上文中所述的广义密度
  • 该平台还提供了一个manifest元素,其属性
    android:smallScreens
    android:normalScreens
    android:largeScreens
    允许您指定应用程序支持的通用屏幕大小。另一个属性android:anyDensity允许您指示应用程序是否包含对多个密度的内置支持
编辑:在回复中添加我的评论。

使用注释中的示例,Archos的屏幕为7英寸,而NexusOne的屏幕为3.7英寸在相同的像素数下,Nexus One的像素密度是Nexus One的两倍。记住,dpi是指每英寸点数这意味着同一图像在Archos中的渲染大小将是Nexus One的两倍

屏幕大小差异应在布局中处理。Nexus One使用
res/layout normal
,Archos使用
res/layout large
。这样,您就可以控制不同屏幕大小的完整布局(也许您需要限制一些在Archos中不必要地过大的小部件),并决定是否要为您的Drawable保留固定大小或根据需要扩展它们

或者,如果您确实希望在不拉伸图像的情况下保持屏幕大小与屏幕成比例,则可以创建两组图像,即image1-normal.png、image2-normal.png和image1-large.png、image2-large.png等,在
res/drawable mdpi
res/drawable hdpi
文件夹中,您可以从
res/layout normal
res/layout large
中的xml文件访问这些文件夹

综上所述,所有要求应通过布局和可拉丝的组合来处理:

  • Nexus One
    布局正常
    可绘制hdpi
  • Archos 7
    layout large
    可绘制mdpi
  • Xoom
    layout xlarge
    可绘制mdpi

我相信您将屏幕大小与像素密度混为一谈:

来自开发指南:

  • 该平台支持一组资源限定符,允许您根据需要提供特定于大小和密度的资源。特定于大小的资源的限定符有
    small
    normal
    large
    xlarge
    。针对密度特定资源的是
    ldpi
    (低)、
    mdpi
    (中)、
    hdpi
    (高)和
    xhdpi
    (特高)。限定符对应于上文中所述的广义密度
  • 该平台还提供了一个manifest元素,其属性
    android:smallScreens
    android:normalScreens
    android:largeScreens
    允许您指定应用程序支持的通用屏幕大小。另一个属性android:anyDensity允许您指示应用程序是否包含对多个密度的内置支持
编辑:在回复中添加我的评论。

使用注释中的示例,Archos的屏幕为7英寸,而NexusOne的屏幕为3.7英寸在相同的像素数下,Nexus One的像素密度是Nexus One的两倍。记住,dpi是指每英寸点数这意味着同一图像在Archos中的渲染大小将是Nexus One的两倍

屏幕大小差异应在布局中处理。Nexus One使用
res/layout normal
,Archos使用
res/layout large
。这样,您就可以控制不同屏幕大小的完整布局(也许您需要限制一些在Archos中不必要地过大的小部件),并决定是否要为您的Drawable保留固定大小或根据需要扩展它们

或者,如果您确实希望在不拉伸图像的情况下保持屏幕大小与屏幕成比例,则可以创建两组图像,即image1-normal.png、image2-normal.png和image1-large.png、image2-large.png等,在
res/drawable mdpi
res/drawable hdpi
文件夹中,您可以从
res/layout normal
res/layout large
中的xml文件访问这些文件夹

总之,完整的需求应该通过组合来处理