我在为应用程序创建通用布局时遇到了麻烦。正如所料,它可以在各种设备中使用,我希望它能够适用于每个设备。有几种方法可以实现这个问题,但我想创建一个xml文件(类似于web.config文件),在我的应用程序的最开始,我想获取设备的屏幕宽度和高度,并计算每个控件(textview,spinner) ,按钮等属性(如边距,填充,宽度,高度......)根据此宽度和高度,并将这些计算值保存到我的xml文件中。最后,我想从布局xmls中获取这些值,这样我的布局视觉将独立于设备,并且可以为每个设备正常工作。这可以实现吗?我在互联网上找不到任何类似的解决方案。任何人都可以帮助我吗?
提前致谢。
答案 0 :(得分:2)
您可以使用RelativeLayout和类似机制在不使用硬编码值的情况下完成大部分操作。双通道动态布局系统正是为您所描述的内容而制作的。
但是,当您需要更具体时,动态资源系统可以帮助您解决问题。对于您在res / drawable,res / layout,res / values等中定义的所有内容,您可以通过使用正确的格式限定兄弟目录来定义设备方向,像素密度,屏幕大小甚至语言的特定实现。在不同的文件夹中提供具有相同名称的资源,系统将根据运行时环境决定使用哪个资源。
看看:
http://developer.android.com/guide/topics/resources/providing-resources.html
答案 1 :(得分:1)
我不会使用自定义测量来动态设置布局参数。 Android专门为您提供了各种功能(包括提供多种图像资源或特定于屏幕尺寸的布局)。
我发现您尝试使用硬编码值自定义Android布局的次数越多(如果您想设置特定参数,请始终使用DP)。
最重要的是,您不应该尝试重新发明轮子,只需使用Android内置的精心设计的功能来实现您的目标。