Android |根据共享的Preference值加载不同的布局

时间:2013-08-11 19:23:50

标签: android android-layout sharedpreferences android-resources

是否有人知道是否可以根据共享偏好值加载不同的资源(例如布局)?

例如,让我们说我们有一个列表首选项,其中包含选项:

是否可以配置android从相应的文件夹加载资源?例如:

布局大/ main.xml中 布局中/ main.xml中

谢谢!

更新 让我们更具体地说明我想做什么。让我们说我有一个照片显示应用程序。我在gridView中以特定的分辨率显示图像,即150x110。我想通过选择3个可能的选项为我的用户提供配置此选项的选项:

  • 大 - > (150x110)
  • 中 - > (110x90)
  • 小 - > (90x70)

出于这个原因,请使用带键的首选项列表:让我们说' display.photo.size'。

我希望android自动选择基于此键的布局。例如,如果用户选择了Large,我希望android能够通过文件夹选择资源:

布局largePhotos

而不是布局文件夹。

以及其他选择。

1 个答案:

答案 0 :(得分:0)

显然我错了,可以强制选择设备的状态,但请记住,这些文件夹是供Android根据设备配置选择的。

Configuration config = new Configuration(getResources().getConfiguration());
config.screenLayout = Configuration.SCREENLAYOUT_SIZE_SMALL;
getResources().updateConfiguration(config, getResources().getDisplayMetrics());

这将强制选择文件夹layout-smallconfig.densityDpi中的布局以获得屏幕密度。

您的评论说您想要的选择不是基于屏幕尺寸,如果是这样,那么我建议,在layout文件夹中创建带有附加限定符的不同布局文件(即。main_activity_large.xml并从那里做出任务。

干杯