0

我正在创建一个 Android 应用程序,并且想要为手机大小的屏幕和平板电脑大小的屏幕提供不同的背景图像。我已经有不同分辨率的不同分辨率图像(mdpihdpi)。挑战在于大多数平板电脑都使用mdpi,但有些手机也可能使用它。

我试图做一些研究,但似乎只有在布局中定义屏幕尺寸是可能的,例如res/layout/layout-large. 这是否意味着我必须为平板电脑创建一个单独的 xml,链接到@drawable/tablet-background? 或者是否有任何其他解决方案,无论是 xml 还是程序化?

4

2 回答 2

3

mdpihpdi等是指屏幕密度,它与平板电脑或手机等设备无关。如果我理解正确,您要做的是为平板电脑和手机使用不同的背景图像。有以下三种方式:

  1. 使用layout-large、layout-xlarge文件夹为平板电脑创建 xml 布局和为手机创建 xml 布局
  2. 在布局布局大文件夹中使用相同的 xml 布局(元素 id 除外),并使用以下内容以编程方式更改背景:

    public boolean isTablet(){
        return (findViewById(R.id.tablet_view) != null); 
    }
    

    其中 tablet_view 是仅存在于layout-large xml 布局中的元素 id。

  3. 另一个技巧:确定设备是智能手机还是平板电脑?

于 2012-12-13T10:14:36.463 回答
2

并希望为手机大小的屏幕和平板电脑大小的屏幕提供不同的背景图像

尝试drawable使用所需的屏幕尺寸以及目标设备的密度值来限定文件夹,例如drawable-large-mdpi. 根据配置限定符表,屏幕尺寸必须排在第一位。

于 2012-12-13T10:37:24.530 回答