我开发了一个应该同时针对 Galaxy Nexus 和 Galaxy S3 的应用程序。两者都有 720 x 1280 的屏幕分辨率,我只在我的应用程序中使用了“dp”值。资源存在于“layout-xhdpi”和“drawable-xhdpi”文件夹中。Nexus 上的布局看起来非常好,但 S3 上的填充值(以 dp 为单位)略有偏差。我认为这是因为 S3 的屏幕尺寸更大且密度不同。
如何为 Nexus 和 S3 创建单独的文件夹,以便考虑不同的屏幕尺寸?
我开发了一个应该同时针对 Galaxy Nexus 和 Galaxy S3 的应用程序。两者都有 720 x 1280 的屏幕分辨率,我只在我的应用程序中使用了“dp”值。资源存在于“layout-xhdpi”和“drawable-xhdpi”文件夹中。Nexus 上的布局看起来非常好,但 S3 上的填充值(以 dp 为单位)略有偏差。我认为这是因为 S3 的屏幕尺寸更大且密度不同。
如何为 Nexus 和 S3 创建单独的文件夹,以便考虑不同的屏幕尺寸?
使用这个方案:
对于相同的布局横向和纵向布局-sw360dp
仅适用于横向布局-sw360dp-land
仅适用于纵向布局-sw360dp-port
我想说您可以使用之前的分类创建具有这些名称的文件夹。位于其中的布局加载到 Galaxy S3 - WXGA720。这是一种区分此类设备布局的方法。它必要的Android 4.0+。
我使用sw360dp-long
系统将用于 GS3 并sw360dp
用于 Galaxy Nexus。
Nexus 4:使用 sw384dp (768x1280)
三星 S3:使用 sw360dp (720x1280)
应该注意的是,两者都属于 sw360dp 存储桶,但某些开发人员可能需要使像素完美,因此可能需要 384 文件夹,但如果您可以使用 LinearLayout 和“weight”设计更灵活的布局,则应避免使用。硬编码 dp 单位。
You can get the device model and can set layout.
As following you can get model
String phoneModel = android.os.Build.MODEL;
if(phoneModel.equals("ABC")) {
// SET Ralated Layout
} else if(phoneModel.equals("XYZ")) {
// SET Ralated Layout
}