2013-04-15 51 views
2

我的默认文件夹values为我的dimens.xml。现在碰巧我需要为mdpi设备使用其他值。为了实现这一点,我必须指定替代资源,即values-mdpi\dimens.xml。但只要我这样做,我必须定义values-xhdpi,values-hdpi等,以显示不同密度的屏幕适当的大小。所以基本上为了定义mdpi设备的唯一值我需要创建几个不同的文件。有没有简单的方法来定义mdpi的价值?就是这样吗?提供替代资源

+0

据我所知,如果Android没有找到特定密度的资源,它将从密度更高或更低的文件夹中获取该资源。所以你可以创建2个文件:mdpi和hdpi,其他密度将使用最接近的值。 – vorrtex

+1

只需在values/dimens.xml中定义您的mdpi值,并在values-hdpi/dimens.xml中设置另一个值 。 mdpi设备将使用values/dimens.xml。 hdpi/xhdpi/xxhdpi设备将使用values-hdpi/dimens.xml – Pauland

回答

1

我对android比较陌生,但我敢肯定,如果您不指定任何其他大小的资源,将使用默认值目录中的值。

请参阅Android文档页面,它们都支持多个屏幕以及如何确定正确的资源。

http://developer.android.com/guide/practices/screens_support.html http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch

+0

但关键是要指定一个替代资源,如果我使用唯一的默认值,那么我不会得到我所需要的值。 – Eugene

+0

正确,我不知道我是否正确地表达了这一点,假设一旦你为mdpi指定资源,你不一定必须指定其他大小(hdpi,xhdpi等)的资源,因为它们仍应该采用来自默认文件夹的值。除非你无法为这个维度指定一个普遍的价值,否则我不认为真的有这个价值。 –

1

是,有一个解决方案。

如果您使用maven构建您的应用程序,您可以创建一个名称为eg的文件夹。 yourproject-resres文件夹所在的相同位置。然后你可以把任何你想要的文件夹(如drawable文件夹,layout文件夹,drawable-mdpi文件夹,values文件夹等)。 之后,你需要修改你的pom.xml来创建应用程序的第二个配置文件,如:

<profile> 
     <id>yourprojectmdpi</id>    
     <properties> 
      <package.name>.com.your.app</package.name> 
      <res.directory>yourproject-res</res.directory>  
     </properties> 
    </profile> 

然后最后一步就是全新安装与使用maven -P参数在您的自定义配置指向您的应用程序。

mvn clean install -Pyourprojectmdpi

然后

mvn android:deploy android:runtarget文件夹发送的apk到您的设备和运行。

Here,herehere你有一个参考maven配置文件。

我希望我能正确理解你的问题。